您好,登錄后才能下訂單哦!
Go 語言中數(shù)據(jù)類型的判斷,本文介紹三種方法。
方法一:使用i.(type)結(jié)合空接口(interface{})
func main() {
v1 := "中國你好"
v2 := 20
var v3 byte = 65
fmt.Printf("v1的數(shù)據(jù)類型為:%s\n", checkType(v1))
fmt.Printf("v2的數(shù)據(jù)類型為:%s\n", checkType(v2))
fmt.Printf("v3的數(shù)據(jù)類型為:%s\n", checkType(v3))
}
func checkType(i interface{}) string{
switch i.(type) {
case string :
return "string"
case int :
return "int"
case byte :
return "byte"
}
return ""
}
輸出:
v1的數(shù)據(jù)類型為:string
v2的數(shù)據(jù)類型為:int
v3的數(shù)據(jù)類型為:byte
注意:i.(type) 只能在switch中使用
方法二:使用fmt中的格式化輸出%T
func main() {
v1 := "中國你好"
v2 := 20
var v3 byte = 65
fmt.Printf("v1的數(shù)據(jù)類型為:%T\n", v1)
fmt.Printf("v2的數(shù)據(jù)類型為:%T\n", v2)
fmt.Printf("v2的數(shù)據(jù)類型為:%T\n", v3)
}
輸出:
v1的數(shù)據(jù)類型為:string
v2的數(shù)據(jù)類型為:int
v2的數(shù)據(jù)類型為:uint8
說明:byte與uint8是同一類型
方法三:使用reflect反射中的TypeOf函數(shù)
func main() {
v1 := "中國你好"
v2 := 20
var v3 byte = 65
fmt.Printf("v1的數(shù)據(jù)類型為:%v\n", reflect.TypeOf(v1))
fmt.Printf("v2的數(shù)據(jù)類型為:%v\n", reflect.TypeOf(v2))
fmt.Printf("v3的數(shù)據(jù)類型為:%v\n", reflect.TypeOf(v3))
}
輸出:
v1的數(shù)據(jù)類型為:string
v2的數(shù)據(jù)類型為:int
v2的數(shù)據(jù)類型為:uint8
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。