Maison > développement back-end > Golang > Go : Tapez les assertions – y a-t-il un bug dans la spécification ?

Go : Tapez les assertions – y a-t-il un bug dans la spécification ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-02-06 08:35:10
avant
879 Les gens l'ont consulté

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

Contenu de la question

go Y a-t-il un bug dans l'assertion de type canonique ?

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.
Copier après la connexion

Que signifie le dernier exemple ? var v,好的接口{} = x.(t) ?

J'ai eu une erreur dans go 1.19 Erreur de syntaxe : interface inattendue, attente := ou = ou virgulesyntax 错误:意外的接口,期望 := 或 = 或逗号


正确答案


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

Réponse correcte

🎜🎜Toutes ces lignes tentent la même chose :x, tapez T. La valeur ok détermine si l'assertion a réussi. Dans le dernier exemple que vous avez fourni, la seule différence est qu'au lieu de déterminer les types pour v et ok, vous avez fourni interface{} pour les deux taper. Déclarer v et ok comme interface{} ne change pas les valeurs qu'ils contiennent. Il vous permet de les envoyer à une fonction ou de les ajouter à une collection qui nécessite un type interface{}, auquel cas ils doivent être à nouveau affirmés. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal