Rumah >pembangunan bahagian belakang >Golang >Pergi: Taip penegasan - adakah terdapat pepijat dalam spesifikasi?
go Adakah terdapat pepijat dalam penegasan jenis kanonik?
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.
Apakah maksud contoh terakhir?
var v,好的接口{} = x.(t)
?
Saya mendapat ralat semasa pergi 1.19
syntax 错误:意外的接口,期望 := 或 = 或逗号
所有这些行都在尝试相同的操作:x
的类型断言以键入 T
。值 ok
确定断言是否成功。在您提供的最后一个示例中,唯一的区别是,您没有为 v
和 ok
确定类型,而是为两者提供了 interface{}
的类型。将 v
和 ok
声明为 interface{}
不会更改它们包含的值。它允许您将它们发送到函数或将它们添加到需要 interface{}
T
. Nilai ok
menentukan sama ada penegasan itu berjaya. Dalam contoh terakhir yang anda berikan, satu-satunya perbezaan ialah daripada menentukan jenis untuk v
dan ok
, anda menyediakan antara muka{} untuk kedua-duanya
taip. Mengisytiharkan v
dan ok
sebagai antara muka{}
tidak mengubah nilai yang terkandung di dalamnya. Ia membolehkan anda menghantarnya ke fungsi atau menambahkannya pada koleksi yang memerlukan jenis antara muka{}
, di mana ia mesti ditegaskan semula. 🎜Atas ialah kandungan terperinci Pergi: Taip penegasan - adakah terdapat pepijat dalam spesifikasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!