最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang中的自定義類型之間的轉(zhuǎn)換的實現(xiàn)(type conversion)

 更新時間:2021年02月21日 11:55:14   作者:龍鶴鹿  
這篇文章主要介紹了Golang中的自定義類型之間的轉(zhuǎn)換的實現(xiàn)(type conversion),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

這里不討論數(shù)值與字符串之間、或者整型與浮點型之間的轉(zhuǎn)換。這里要討論的是自定義類型之間的轉(zhuǎn)換,這個轉(zhuǎn)換與其他語言都不一樣,而且在go的源碼中也被大量使用。

這里列舉兩個實用的例子。

轉(zhuǎn)換成實現(xiàn)了某個(些)接口的自定義類型

比如:sort包里面的IntSlice,是一個[]int的自定義類型,并且實現(xiàn)了sort.Interface接口,如下所示:

type IntSlice []int

// 實現(xiàn)sort.Interface接口的方法
func (p IntSlice) Len() int      { return len(p) }
func (p IntSlice) Less(i, j int) bool { return p[i] < p[j] }
func (p IntSlice) Swap(i, j int)   { p[i], p[j] = p[j], p[i] }
// 一個便捷方法
func (p IntSlice) Sort() { Sort(p) }

當(dāng)我們需要對一個int切片進行排序的時候,我們就可以直接把[]int]轉(zhuǎn)換成sort.IntSlice,然后直接調(diào)用Sort()方法。

 ints := []int{1, 7, 2, 3, 8, 0}
 sort.IntSlice(ints).Sort()

將函數(shù)轉(zhuǎn)換成實現(xiàn)了某個(些)接口的函數(shù)

典型的一個案例就是http.HandlerFunc,通過這個類型,可以使得一個普通函數(shù)成為一個Http處理器(handler)。

type HandlerFunc func(ResponseWriter, *Request)

// 實現(xiàn)http.Handler接口的方法
func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {
  f(w, r)
}

只要某個函數(shù)f具有跟HandlerFunc一樣的函數(shù)簽名(signature),那么這個函數(shù)就可以被轉(zhuǎn)換成http.HandlerFunc。而

http.HandlerFunc又實現(xiàn)了http.Handler接口,那么這個函數(shù)f就可以被http服務(wù)器調(diào)用了。

func f(w ResponseWriter, r *Request) {
 //...
}

http.Handle("/args", http.HandlerFunc(f))

在Golang中,這種用法很普遍,可以使用更少的代碼實現(xiàn)與其他語言一樣的功能。

 到此這篇關(guān)于Golang中的自定義類型之間的轉(zhuǎn)換的實現(xiàn)(type conversion)的文章就介紹到這了,更多相關(guān)Golang 自定義類型轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你掌握Golang Interface原理和使用技巧

    一文帶你掌握Golang Interface原理和使用技巧

    Golang 中的 interface 是一種非常重要的特性,可以讓我們寫出更加靈活的代碼。在本篇文章中,我們將深入探討 Golang 中interface 的原理和使用技巧,感興趣的可以了解一下
    2023-04-04
  • 一文詳細談?wù)凣oLang的panic和error

    一文詳細談?wù)凣oLang的panic和error

    說是初識,并不是說第一次使用error和panic包,而是第一次特地去了解golang中的這兩個機制,下面這篇文章主要給大家介紹了關(guān)于如何通過一文詳細談?wù)凣oLang中panic和error的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • golang中的select關(guān)鍵字用法總結(jié)

    golang中的select關(guān)鍵字用法總結(jié)

    這篇文章主要介紹了golang中的select關(guān)鍵字用法總結(jié),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 淺析golang如何在多線程中避免CPU指令重排

    淺析golang如何在多線程中避免CPU指令重排

    這篇文章主要為大家詳細介紹了golang在多線程中避免CPU指令重排的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Golang執(zhí)行cmd命令行的方法

    Golang執(zhí)行cmd命令行的方法

    本文主要介紹了Golang執(zhí)行cmd命令行的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解

    詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解

    這篇文章主要為大家介紹了詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • golang交叉編譯詳細

    golang交叉編譯詳細

    Golang 支持交叉編譯,在一個平臺上生成另一個平臺的可執(zhí)行程序,只需要按照我下面的這個環(huán)境變量表設(shè)置對應(yīng)的環(huán)境變量就可以了,下面文章將對該內(nèi)容做詳細介紹,感興趣的小伙伴可以參考一下
    2021-10-10
  • Go語言中的流程控制結(jié)構(gòu)和函數(shù)詳解

    Go語言中的流程控制結(jié)構(gòu)和函數(shù)詳解

    這篇文章主要介紹了Go語言中的流程控制結(jié)構(gòu)和函數(shù)詳解,本文詳細講解了if、goto、for、switch等控制語句,同時對函數(shù)相關(guān)知識做了講解,需要的朋友可以參考下
    2014-10-10
  • 一文搞懂Golang中的內(nèi)存逃逸

    一文搞懂Golang中的內(nèi)存逃逸

    內(nèi)存逃逸是 Go 語言中一個重要的概念,涉及到程序的性能優(yōu)化和內(nèi)存管理,了解內(nèi)存逃逸可以幫助我們編寫更高效的代碼,本文將從基本概念入手,深入講解 Go 語言中的內(nèi)存逃逸現(xiàn)象,以及如何避免,需要的朋友可以參考下
    2023-12-12
  • Golang編程并發(fā)工具庫MapReduce使用實踐

    Golang編程并發(fā)工具庫MapReduce使用實踐

    這篇文章主要為大家介紹了Golang并發(fā)工具庫MapReduce的使用實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04

最新評論

汝阳县| 射洪县| 永川市| 汾西县| 西丰县| 盐山县| 重庆市| 五华县| 桐庐县| 邹平县| 呼伦贝尔市| 上林县| 惠安县| 汝阳县| 崇明县| 永和县| 馆陶县| 融水| 即墨市| 江华| 东乡县| 西盟| 航空| 昌图县| 油尖旺区| 灵川县| 丹江口市| 那坡县| 绥棱县| 和静县| 德保县| 无极县| 碌曲县| 枝江市| 武冈市| 内乡县| 博野县| 嘉定区| 武夷山市| 塔河县| 上虞市|