直接使用reflect的TypeOf方法就可以了
fmt.Println(reflect.TypeOf(var))
補(bǔ)充:golang 獲取變量類型的三種方式
Using string formatting
func typeof(v interface{}) string {
return fmt.Sprintf("%T", v)
}
Using reflect package
func typeof(v interface{}) string {
return reflect.TypeOf(v).String()
}
Using type assertions
func typeof(v interface{}) string {
switch v.(type) {
case int:
return "int"
case float64:
return "float64"
//... etc
default:
return "unknown"
}
}
補(bǔ)充:golang 獲取變量類型的字符串格式 列舉變量類型
fmt.Println(reflect.TypeOf(var))
switch xxx.(type){
case int:....
case float32:...
case float64:...
case string:...
}
對type的枚舉,不能使用fallthrough,且float32和float64是兩個(gè)不同的類型(沒有單獨(dú)的float類型),而int卻包含int64
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 基于golang uint8、int8與byte的區(qū)別說明
- golang 監(jiān)聽服務(wù)的信號,實(shí)現(xiàn)平滑啟動(dòng),linux信號說明詳解
- golang 實(shí)現(xiàn)時(shí)間戳和時(shí)間的轉(zhuǎn)化
- Golang Gob編碼(gob包的使用詳解)
- golang 如何獲取文件夾下面的文件列表
- golang 如何實(shí)現(xiàn)HTTP代理和反向代理
- Golang實(shí)現(xiàn)http文件上傳小功能的案例
- golang值類型轉(zhuǎn)換成[]uint8類型的操作