站長資訊網
        最全最豐富的資訊網站

        go語言怎么獲取類型信息

        在go語言中,可以通過反射來獲取類型信息;只需要調用reflect包的TypeOf()函數即可。方法:1、使用“reflect.TypeOf()”函數取得指定變量的類型對象;2、使用Name()和Kind()獲取類型對象的類型信息,語法“類型對象.Name()”和“類型對象.Kind()”。

        go語言怎么獲取類型信息

        本教程操作環境: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 main import (     "fmt"     "reflect" ) func main() {     var a int     typeOfA := reflect.TypeOf(a)     fmt.Println(typeOfA.Name(), typeOfA.Kind()) }
        登錄后復制

        代碼輸出如下:

        go語言怎么獲取類型信息

        代碼說明如下:

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

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

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

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

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

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲av永久无码精品漫画| 久久丫精品国产亚洲av不卡| 四虎精品成人免费视频| 国产一成人精品福利网站| 中文字幕精品视频在线| 国产高清在线精品一区小说| 国产精品内射后入合集| 一级A毛片免费观看久久精品| 亚洲日韩精品欧美一区二区| 国产精品无码一区二区三区电影| 亚洲一区无码精品色| 久久久久久久久久免免费精品 | 成人精品一区二区三区免费看| 精品福利视频一区二区三区 | 亚洲国产精品无码久久九九| 国产精品久久久久久久午夜片| 精品福利一区二区三| 国产精品综合色区在线观看| 少妇伦子伦精品无码STYLES| 无码欧精品亚洲日韩一区夜夜嗨| 精品国产一区二区三区在线观看 | 国产午夜精品一区二区三区漫画| 亚洲午夜精品久久久久久浪潮 | 国产精品一区二区三区99| 91精品国产高清久久久久久国产嫩草| 2021国产成人精品国产| 精品国产粉嫩内射白浆内射双马尾 | jizz国产精品| 亚洲精品成人av在线| 欧美精品一区二区精品久久| 国产成人精品日本亚洲专一区| 91精品国产色综合久久| 国产色婷婷五月精品综合在线 | laowang在线精品视频| 国产精品伦一区二区三级视频| 久久国产乱子伦免费精品| 久久精品天天中文字幕人妻| 久久99精品久久久久久动态图| 精品无码AV一区二区三区不卡| 国产麻豆一精品一AV一免费| 91精品啪在线观看国产|