golang中Any類型使用及空接口中類型查詢
阿新 • • 發佈:2018-10-23
ace 賦值 2.3 string 使用 println 接受 var 語句 golang中Any類型使用及類型查詢
1.Any類型
GO語言中任何對象實例都滿足空接口interface{},空接口可以接口任何值
var v1 interface{} = 1
var v2 interface{} = "abc"
var v3 interface{} = 2.345
var v4 interface{} = make(map[..]...)
....
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") } }
golang中Any類型使用及空接口中類型查詢