Heim > Backend-Entwicklung > Golang > Go: Typzusicherungen – gibt es einen Fehler in der Spezifikation?

Go: Typzusicherungen – gibt es einen Fehler in der Spezifikation?

WBOY
Freigeben: 2024-02-06 08:35:10
nach vorne
860 Leute haben es durchsucht

Go:类型断言 - 规范中是否有错误?

Frageninhalt

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.
Nach dem Login kopieren

Was bedeutet das letzte Beispiel? var v,好的接口{} = x.(t)?

Ich habe einen Fehler in Go 1.19 erhalten Syntaxfehler: Unerwartete Schnittstelle, erwartet := oder = oder Kommasyntax 错误:意外的接口,期望 := 或 = 或逗号


正确答案


所有这些行都在尝试相同的操作:x 的类型断言以键入 T。值 ok 确定断言是否成功。在您提供的最后一个示例中,唯一的区别是,您没有为 vok 确定类型,而是为两者提供了 interface{} 的类型。将 vok 声明为 interface{} 不会更改它们包含的值。它允许您将它们发送到函数或将它们添加到需要 interface{}

Richtige Antwort

🎜🎜Alle diese Zeilen versuchen dasselbe:x, um 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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage