1. 程式人生 > >golang 斷言 + 型別轉換

golang 斷言 + 型別轉換

轉自部落格園http://my.oschina.net/u/157514/blog/148285

golang 語言中 也有類似javascript 的 typeof 判斷型別的 方法

比如

    func (a interface{}){

            //第一種

            if inst,ok:=a.(TypeA);ok{

                inst.MethodA()

            }  

            //第二種

            switch inst:=a.(type){

                    case TypeA:

                            inst.MethodA()

                    default:

                            fmt.Println("unknow")

            }    

    }

a可能是任意型別

a.(某個型別) 返回兩個值 inst 和 ok ,ok代表是否是這個型別,Ok如果是 inst 就是轉換後的 型別 

a.(type)    type是關鍵字 結合switch case使用

TypeA(a) 是強制轉換
我的記憶方法:轉換後的結果,是否成功 := 物件屬性.(要轉換或斷言的型別),這個公式“是否成功”可選