go語言怎么獲取類型信息-觀速訊

          來源:php中文網 | 2023-02-22 18:59:14 |

          本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

          在go語言中,可以通過反射獲取類型信息。

          在 Go語言中通過調用 reflect.TypeOf 函數,我們可以從一個任何非接口類型的值創建一個 reflect.Type 值。reflect.Type 值表示著此非接口值的類型。通過此值,我們可以得到很多此非接口類型的信息。當然,我們也可以將一個接口值傳遞給一個 reflect.TypeOf 函數調用,但是此調用將返回一個表示著此接口值的動態類型的 reflect.Type 值。


          (資料圖片)

          實際上,reflect.TypeOf 函數的唯一參數的類型為 interface{},reflect.TypeOf 函數將總是返回一個表示著此唯一接口參數值的動態類型的 reflect.Type 值。

          那如何得到一個表示著某個接口類型的 reflect.Type 值呢?我們必須通過下面將要介紹的一些間接途徑來達到這一目的。

          類型 reflect.Type 為一個接口類型,它指定了若干方法。 通過這些方法,我們能夠觀察到一個 reflect.Type 值所表示的 Go類型的各種信息。這些方法中的有的適用于所有種類的類型,有的只適用于一種或幾種類型。通過不合適的 reflect.Type 屬主值調用某個方法將在運行時產生一個恐慌。

          使用 reflect.TypeOf() 函數可以獲得任意值的類型對象(reflect.Type),程序通過類型對象可以訪問任意值的類型信息。下面通過例子來理解獲取類型對象的過程:

          package mainimport (    "fmt"    "reflect")func main() {    var a int    typeOfA := reflect.TypeOf(a)    fmt.Println(typeOfA.Name(), typeOfA.Kind())}

          代碼輸出如下:

          從零開始教你如何寫一個屬于自己的CMS系統:進入學習 你可以學到:ThinkPHP6 + LayUI + 內容管理系統開發 等等

          代碼說明如下:

          第 10 行,定義一個 int 類型的變量。

          第 12 行,通過 reflect.TypeOf() 取得變量 a 的類型對象 typeOfA,類型為 reflect.Type()。

          第 14 行中,通過 typeOfA 類型對象的成員函數,可以分別獲取到 typeOfA 變量的類型名為 int,種類(Kind)為 int。

          擴展知識:反射的類型(Type)與種類(Kind)

          在使用反射時,需要首先理解類型(Type)和種類(Kind)的區別。編程中,使用最多的是類型,但在反射中,當需要區分一個大品種的類型時,就會用到種類(Kind)。例如,需要統一判斷類型中的指針時,使用種類(Kind)信息就較為方便。

          以上就是go語言怎么獲取類型信息的詳細內容,更多請關注php中文網其它相關文章!

          關鍵詞: go語言 Golang

          亚洲国产成人久久精品软件| 亚洲视频在线观看地址| 久久精品国产亚洲av高清漫画| 亚洲中文字幕无码爆乳AV| 亚洲国产精品专区在线观看| 亚洲av中文无码乱人伦在线观看| 亚洲国产视频久久| 亚洲ts人妖网站| 亚洲国产成人无码av在线播放| 18亚洲男同志videos网站| 亚洲视频.com| 久久久久亚洲精品无码蜜桃| 亚洲人成在线电影| 久久精品国产亚洲AV大全| 久久av无码专区亚洲av桃花岛| 亚洲欧洲日韩不卡| 亚洲福利在线视频| 久久久久久a亚洲欧洲AV| 亚洲Av无码精品色午夜| 亚洲AV综合色区无码一区| 亚洲av无码成人黄网站在线观看 | 亚洲熟妇无码爱v在线观看| 亚洲视频在线观看不卡| 中文字幕亚洲色图| 亚洲午夜久久久久久尤物 | 亚洲视频在线精品| 国产亚洲精品AA片在线观看不加载 | 67194在线午夜亚洲| 国产亚洲中文日本不卡二区 | 国产精品亚洲不卡一区二区三区 | 亚洲综合色区在线观看| 国产亚洲情侣一区二区无| 亚洲日韩精品一区二区三区无码 | 亚洲欧洲日本精品| 亚洲视频无码高清在线| 亚洲精品宾馆在线精品酒店 | 91亚洲精品视频| 亚洲一区动漫卡通在线播放| 在线精品亚洲一区二区| 国产精品亚洲专区无码唯爱网| 亚洲国产综合精品一区在线播放|