第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用反射確定類型是否為字符串

使用反射確定類型是否為字符串

Go
米琪卡哇伊 2023-05-22 15:48:32
關(guān)于如何在運(yùn)行時(shí)確定對象類型的一些現(xiàn)有答案..god help usif reflect.TypeOf(err) ==  string { }那不編譯if reflect.TypeOf(err) ==  "string" { }那個(gè)或這個(gè)都沒有:if reflect.TypeOf(err).Kind() ==  "string" { }我們?nèi)绾巫龅竭@一點(diǎn)?如果我使用其中一個(gè)答案給出的 typeof 函數(shù),我會(huì)得到:
查看完整描述

2 回答

?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

比較像字符串


if reflect.TypeOf(err).String() == "string" {

    fmt.Println("hello")

}

或者使用類型斷言


type F = func()


func typeof(v interface{}) string {

    switch v.(type) {

    case int:

        return "int"

    case string:

        return "string"

    case F:

        return "F"

    //... etc

    default:

        return "unknown"

    }

}

然后


var f F

if typeof(f) == "F"{

    fmt.Println("hello F")

}


查看完整回答
反對 回復(fù) 2023-05-22
?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

要使用反射比較類型,請比較 reflect.Type 值:


var stringType = reflect.TypeOf("") // this can be declared at package-level


if reflect.TypeOf(v) == stringType {

    // v has type string

}

給定一個(gè)任意類型名稱X,您可以使用以下方法構(gòu)造該類型:


var xType = reflect.TypeOf((*X)(nil)).Elem()


if reflect.TypeOf(v) == xType {

    // v has type X

}

如果你想檢查一個(gè)值是否是某種類型,那么使用類型斷言:


if _, ok := v.(string); ok {

   // v is a string

}

如果要將類型映射到字符串,請使用由 reflect.Type 鍵入的映射:


var typeName = map[reflect.Type]string{

    reflect.TypeOf((*int)(nil)).Elem():    "int",

    reflect.TypeOf((*string)(nil)).Elem(): "string",

    reflect.TypeOf((*F)(nil)).Elem():      "F",

}


...


if n, ok := typeName[reflect.TypeOf(f)]; ok {

    fmt.Println(n)

} else {

    fmt.Println("other")

}


查看完整回答
反對 回復(fù) 2023-05-22
  • 2 回答
  • 0 關(guān)注
  • 180 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)