go 規範類型斷言中是否有錯誤?
A type assertion used in an assignment statement or initialization of the special form v, ok = x.(T) v, ok := x.(T) var v, ok = x.(T) var v, ok interface{} = x.(T) // dynamic types of v and ok are T and bool yields an additional untyped boolean value.
最後一個例子的意思是什麼?
var v,好的介面{} = x.(t)
?
我在 go 1.19 遇到錯誤
syntax 錯誤:意外的接口,期望:= 或= 或逗號
#所有這些行都在嘗試相同的操作: x
的型別斷言以鍵入T
。值 ok
確定斷言是否成功。在您提供的最後一個範例中,唯一的區別是,您沒有為v
和ok
決定類型,而是為兩者提供了interface{}
的類型。將 v
和 ok
宣告為 interface{}
不會變更它們所包含的值。它允許您將它們發送到函數或將它們添加到需要 interface{}
類型的集合中,此時必須再次斷言它們。
以上是Go:型別斷言 - 規範中是否有錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!