Aller struct comparaison
L'Aller Langage de Programmation section Spécifications sur Les opérateurs de comparaison m'amène à croire qu'une structure contenant uniquement des champs comparables devraient être comparables:
Struct valeurs sont comparables si tous les champs sont comparables. Deux struct valeurs sont égales si leurs correspondants non vide les champs sont égaux.
En tant que tel, j'attendrais la suite de code à compiler depuis tous les champs de "l'Étudiant" struct sont comparables:
package main
type Student struct {
Name string //"String values are comparable and ordered, lexically byte-wise."
Score uint8 //"Integer values are comparable and ordered, in the usual way."
}
func main() {
alice := Student{"Alice", 98}
carol := Student{"Carol", 72}
if alice >= carol {
println("Alice >= Carol")
} else {
println("Alice < Carol")
}
}
Cependant, il ne peut pas compiler avec le message:
opération non valide: alice >= carol (opérateur >= non défini sur struct)
Ce qui me manque?
OriginalL'auteur maerics | 2016-09-22
Vous devez vous connecter pour publier un commentaire.
Vous sont corrects, les structures sont comparable, mais pas commandé (spec):
>=
est l'ordre de l'opérateur, de ne pas comparables.!=
OriginalL'auteur Tim Cooper
Vous devez définir le champ que vous allez comparer pour obtenir le programme à compiler.
Puis il compile et imprime
OriginalL'auteur nosequeldeebee