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
941 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!

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