golang中Any型別使用及空介面中型別查詢
golang中Any型別使用及型別查詢
1.Any型別
GO語言中任何物件例項都滿足空介面interface{},空介面可以介面任何值
var v1 interface{} = 1
var v2 interface{} = "abc"
var v3 interface{} = 2.345
var v4 interface{} = make(map[..]...)
....
2.1 關於空介面的型別查詢方式一,使用ok
package main import "fmt" //空介面可以接受任何值 //interface { } func main(){ var v1 interface{ } v1 = 6.78 //賦值一個變數v判斷其型別是否為float64,是則為真,否則,為假 if v, ok := v1.(float64);ok{ fmt.Println(v, ok) }else { fmt.Println(v,ok) } }
2.2 關於空介面型別查詢方式二,switch語句結合 var.type()
package main import "fmt" //空介面可以接受任何值 //interface { } func main(){ var v1 interface{ } v1 = "張三" switch v1.(type) { case float32: case float64: fmt.Println("this is float64 type") case string: fmt.Println("this is string type") } }