go Gibt es einen Fehler in der kanonischen Typzusicherung?
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.
Was bedeutet das letzte Beispiel?
var v,好的接口{} = x.(t)
?
Ich habe einen Fehler in Go 1.19 erhalten
Syntaxfehler: Unerwartete Schnittstelle, erwartet := oder = oder Komma
syntax 错误:意外的接口,期望 := 或 = 或逗号
所有这些行都在尝试相同的操作:x
的类型断言以键入 T
。值 ok
确定断言是否成功。在您提供的最后一个示例中,唯一的区别是,您没有为 v
和 ok
确定类型,而是为两者提供了 interface{}
的类型。将 v
和 ok
声明为 interface{}
不会更改它们包含的值。它允许您将它们发送到函数或将它们添加到需要 interface{}
T
einzugeben. Der Wert ok
bestimmt, ob die Behauptung erfolgreich war. Im letzten Beispiel, das Sie bereitgestellt haben, besteht der einzige Unterschied darin, dass Sie, anstatt die Typen für v
und ok
zu bestimmen, interface{} für beide
angegeben haben Typ. Durch die Deklaration von v
und ok
als interface{}
werden die darin enthaltenen Werte nicht geändert. Sie können sie an eine Funktion senden oder einer Sammlung hinzufügen, die einen interface{}
-Typ erfordert. Anschließend müssen sie erneut bestätigt werden. 🎜Das obige ist der detaillierte Inhalt vonGo: Typzusicherungen – gibt es einen Fehler in der Spezifikation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!