直接使用reflect的TypeOf方法就可以了
fmt.Println(reflect.TypeOf(var))
補充: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"
}
}
補充:golang 獲取變量類型的字符串格式 列舉變量類型
fmt.Println(reflect.TypeOf(var))
switch xxx.(type){
case int:....
case float32:...
case float64:...
case string:...
}
對type的枚舉,不能使用fallthrough,且float32和float64是兩個不同的類型(沒有單獨的float類型),而int卻包含int64
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 基于golang uint8、int8與byte的區別說明
- golang 監聽服務的信號,實現平滑啟動,linux信號說明詳解
- golang 實現時間戳和時間的轉化
- Golang Gob編碼(gob包的使用詳解)
- golang 如何獲取文件夾下面的文件列表
- golang 如何實現HTTP代理和反向代理
- Golang實現http文件上傳小功能的案例
- golang值類型轉換成[]uint8類型的操作