欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go反射中type和kind區(qū)別比較詳析

 更新時(shí)間:2023年10月08日 11:07:46   作者:沛沛老爹  
這篇文章主要給大家介紹了關(guān)于Go反射中type和kind區(qū)別比較的相關(guān)資料,Type是接口類型,Value是Struct類型,Type是類型描述,而Value是具體的值,需要的朋友可以參考下

前言

Go語言中的反射是由 reflect 包提供支持的,它定義了兩個(gè)重要的類型 Type 和 Value 。任意值在反射中都可以理解為由 reflect.Type 和 reflect.Value 兩部分組成,并且 reflect 包提供了 reflect.TypeOf 和 reflect.ValueOf 兩個(gè)函數(shù)來獲取任意對(duì)象的 Value 和 Type。

在Go語言程序中,使用 reflect.TypeOf() 函數(shù)可以獲得任意值的類型對(duì)象(reflect.Type),程序通過類型對(duì)象可以訪問任意值的類型信息。

Type 和 Kind 的區(qū)別

Type 是類型。Kind 是類別。Type 和 Kind 可能相同,也可能不同。通?;A(chǔ)數(shù)據(jù)類型的 Type 和 Kind 相同,自定義數(shù)據(jù)類型則不同。

基礎(chǔ)類型

輸出結(jié)果為 int  int 

func main() {
    var a int
    typeA := reflect.TypeOf(a)
    fmt.Println(typeA.Name(), typeA.Kind())
}

自定義類型

輸出結(jié)果為cat  struct

type cat struct {
		name string
	} 
	typeCat := reflect.TypeOf(cat{}) 
	fmt.Println(typeCat.Name(), typeCat.Kind())

對(duì)于反射中的 kind 我們既可以通過 reflect.Type 來獲取,也可以通過 reflect.Value 來獲取。他們得到的值和類型均是相同的。

種類(Kind)

種類(Kind)指的是對(duì)象歸屬的品種,在 reflect 包中有如下定義:

type Kind uint
const (
    Invalid Kind = iota  // 非法類型
    Bool                 // 布爾型
    Int                  // 有符號(hào)整型
    Int8                 // 有符號(hào)8位整型
    Int16                // 有符號(hào)16位整型
    Int32                // 有符號(hào)32位整型
    Int64                // 有符號(hào)64位整型
    Uint                 // 無符號(hào)整型
    Uint8                // 無符號(hào)8位整型
    Uint16               // 無符號(hào)16位整型
    Uint32               // 無符號(hào)32位整型
    Uint64               // 無符號(hào)64位整型
    Uintptr              // 指針
    Float32              // 單精度浮點(diǎn)數(shù)
    Float64              // 雙精度浮點(diǎn)數(shù)
    Complex64            // 64位復(fù)數(shù)類型
    Complex128           // 128位復(fù)數(shù)類型
    Array                // 數(shù)組
    Chan                 // 通道
    Func                 // 函數(shù)
    Interface            // 接口
    Map                  // 映射
    Ptr                  // 指針
    Slice                // 切片
    String               // 字符串
    Struct               // 結(jié)構(gòu)體
    UnsafePointer        // 底層指針
)

總結(jié)

 相較于 Type 而言,Kind 所表示的范疇更大??梢岳斫鉃閿?shù)學(xué)中的包含關(guān)系。類似于家用電器(Kind)和電視機(jī)(Type)之間的對(duì)應(yīng)關(guān)系。類似于電商系統(tǒng)中的spu和sku的關(guān)系一樣。

到此這篇關(guān)于Go反射中type和kind區(qū)別比較的文章就介紹到這了,更多相關(guān)Go反射type和kind內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang如何實(shí)現(xiàn)proxy代理簡(jiǎn)單方法

    golang如何實(shí)現(xiàn)proxy代理簡(jiǎn)單方法

    這篇文章主要給大家介紹了關(guān)于golang如何實(shí)現(xiàn)proxy代理簡(jiǎn)單方法的相關(guān)資料,Proxy是golang實(shí)現(xiàn)的高性能http,https,websocket,tcp,udp,socks5,ss代理服務(wù)器,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 基于Golang實(shí)現(xiàn)Excel表格的導(dǎo)入導(dǎo)出功能

    基于Golang實(shí)現(xiàn)Excel表格的導(dǎo)入導(dǎo)出功能

    最近項(xiàng)目開發(fā)中有涉及到Excel的導(dǎo)入與導(dǎo)出功能,特別是導(dǎo)出表格時(shí)需要特定的格式,所以本文給大家介紹了基于Golang實(shí)現(xiàn)Excel表格的導(dǎo)入導(dǎo)出功能,文中通過代碼示例和圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • golang判斷chan channel是否關(guān)閉的方法

    golang判斷chan channel是否關(guān)閉的方法

    這篇文章主要介紹了golang判斷chan channel是否關(guān)閉的方法,結(jié)合實(shí)例形式對(duì)比分析了Go語言判斷chan沒有關(guān)閉的后果及關(guān)閉的方法,需要的朋友可以參考下
    2016-07-07
  • Windows下在CMD下執(zhí)行Go出現(xiàn)中文亂碼的解決方法

    Windows下在CMD下執(zhí)行Go出現(xiàn)中文亂碼的解決方法

    在cmd下運(yùn)行g(shù)o程序或者是GOLAND的Terminal下運(yùn)行g(shù)o程序會(huì)出現(xiàn)中文亂碼的情況。本文就詳細(xì)的介紹下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • Golang中常見的三種并發(fā)控制方式使用小結(jié)

    Golang中常見的三種并發(fā)控制方式使用小結(jié)

    這篇文章主要為大家詳細(xì)介紹了如何對(duì)goroutine并發(fā)行為的控制,在Go中最常見的有三種方式:sync.WaitGroup、channel和Context,下面我們就來看看他們的具體使用吧
    2024-01-01
  • golang中的struct操作

    golang中的struct操作

    結(jié)構(gòu)體是一種聚合的數(shù)據(jù)類型,是由零個(gè)或多個(gè)任意類型的值聚合成的實(shí)體,每個(gè)值稱為結(jié)構(gòu)體的成員。下面介紹下golang中的struct,感興趣的朋友一起看看吧
    2021-11-11
  • GO語言的IO方法實(shí)例小結(jié)

    GO語言的IO方法實(shí)例小結(jié)

    這篇文章主要介紹了GO語言的IO方法實(shí)例小結(jié),Docker的火爆促成了當(dāng)下新興的Go語言人氣的大幅攀升,需要的朋友可以參考下
    2015-10-10
  • 一文帶你掌握Golang中panic與recover的使用方法

    一文帶你掌握Golang中panic與recover的使用方法

    這篇文章主要介紹了Golang中panic與recover的作用和使用方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的小伙伴可以參考一下
    2023-04-04
  • Go實(shí)現(xiàn)后臺(tái)任務(wù)調(diào)度系統(tǒng)的實(shí)例代碼

    Go實(shí)現(xiàn)后臺(tái)任務(wù)調(diào)度系統(tǒng)的實(shí)例代碼

    平常我們?cè)陂_發(fā)API的時(shí)候,前端傳遞過來的大批數(shù)據(jù)需要經(jīng)過后端處理,如果后端處理的速度快,前端響應(yīng)就快,反之則很慢,影響用戶體驗(yàn),為了解決這一問題,需要我們自己實(shí)現(xiàn)后臺(tái)任務(wù)調(diào)度系統(tǒng),本文將介紹如何用Go語言實(shí)現(xiàn)后臺(tái)任務(wù)調(diào)度系統(tǒng),需要的朋友可以參考下
    2023-06-06
  • Go語言實(shí)現(xiàn)常見限流算法的示例代碼

    Go語言實(shí)現(xiàn)常見限流算法的示例代碼

    計(jì)數(shù)器、滑動(dòng)窗口、漏斗算法、令牌桶算法是我們常見的幾個(gè)限流算法,本文將依次用Go語言實(shí)現(xiàn)這幾個(gè)限流算法,感興趣的可以了解一下
    2023-05-05

最新評(píng)論