1. 程式人生 > >golang 基礎知識3

golang 基礎知識3

斷言 val study article 使用 log post als 而不是

斷言: 參考 https://studygolang.com/articles/3314

var.(T)類型斷言失敗時會返回T類型的“0值”,而不是變量原始值。 var是要判斷的變量,T類型,例如:sss.(string),T是type最好用的是interface或者一個strcut

其中var為interface{}類型 T是要斷言的類型。

簡單的string可以不使用這個

1)直接斷言使用

var a interface{}

a = "xxxx"

fmt.Println("Where are you,Jonny?", a.(string))

但是如果斷言失敗一般會導致panic的發生。所以為了防止panic的發生,我們需要在斷言前進行一定的判斷

value, ok := a.(string) //value在正常值true/false, 如果沒錯誤 ok是沒有值的,如果有panic則ok是有值的

if value, ok := a.(string) ,ok {

  fmt.Println(value, ok) //xxxx,true

}

if value, ok := a.(string) ,ok {

  fmt.Println(value, ok)

} else {

fmt.Println(value, ok) //<nil>, false 如果ok為false則ok為false

}

golang 基礎知識3