今天學到結構體的時候,突然想起怎麼判斷變量類型? 轉載地址:http://blog.sina.com.cn/s/blog_487109d101013g2p.html
------------------------------------------------------------------------------------
今天羣裏有人問:在Go中怎樣判斷數據類型。
1、要判斷數據類型,可以用Go的空接口:建一個函數t 設置參數i 的類型爲空接口,空接口可以接受任何數據類型
func t(i interface{}) { //函數t 有一個參數i
switch i.(type) { //多選語句switch
case string:
//是字符時做的事情
case int:
//是整數時做的事情
}
return
}
i.(type) 只能在switch中使用這函數沒有返回值,你可以自己加入 這種方式可以判斷多種類型實現某種業務需求。
----------------------------------------------------------------------------
2、還可以用反射:
package main
import (
"fmt"
"reflect"
)
func main() {
var x float64 = 3.4
fmt.Println("type:", reflect.TypeOf(x))
}
這樣就可以得出變量x的類型信息,與上面不同的是:上面的方法要先知到它是幾個類型中的一個,而這個方法可以對任意對象使用。