Différences : 1. Les tranches sont des types pointeurs, les tableaux sont des types valeur ; 2. La longueur des tableaux est fixe, mais les tranches ne le sont pas (les tranches peuvent être considérées comme des tableaux dynamiques) ; que l'attribut arrays (cap) ; 4. La couche inférieure de la tranche est un tableau.
L'environnement d'exploitation de cet article : système Windows10, Go 1.11.2, ordinateur Thinkpad T480.
Recommandations associées : "aller au tutoriel"
Que produit le code suivant ? Que sera le résultat si les commentaires sont supprimés ?
package main import ( "fmt" ) func main() { a := [2]int{5, 6} b := [2]int{5, 6} if a == b { fmt.Println("equal") } else { fmt.Println("not equal") } /* if a[:] == b[:] { fmt.Println("equal") } else { fmt.Println("not equal") } */ }
Sortie :
equal
Supprimer l'invite de commentaire :
invalid operation: a[:] == b[:] (slice can only be compared to nil)
Explication :
La différence entre les tableaux et les tranches dans le go langage
● Les tranches sont des types pointeurs, les tableaux sont des types valeur
● La longueur des tableaux est fixe, mais les tranches ne le sont pas (les tranches sont des tableaux dynamiques)
● Là il y a plus de tranches que de tableaux Un attribut : Capacité (cap)
● La couche inférieure de la tranche est un tableau
Par conséquent, a et b définissent des types de tableaux, et la comparaison des tableaux est la même
Cependant, a [:], b[:] sont des tranches. Un jugement d'égalité ne peut pas être effectué entre les tranches et ne peut être jugé qu'avec zéro.
Pour plus de connaissances sur la programmation, veuillez visiter la page. : Enseignement de la programmation ! !
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!