这是一个类型断言,并记录在 Go 规范中:如果断言成立,则 ok 的值为真。否则它是假的并且 v 的值是类型 T 的零值。在这种情况下不会发生运行时恐慌。检查到位并且存在类型不匹配,该值将设置为 float32(数字)类型的“零”值,因此为 0。如果没有运行时检查,您应该绝对确定类型将匹配,并且规范规定如果不匹配就会发生恐慌。这种模式与基本错误检查没有什么不同,例如// v, err := someapi(). // Should check err ...v, _ := someapi() // deliberately ignore errorv.SomeMethod() // ... Panic as v probably nil if there was an error