Test Index out of range golang
Désolé pour cette question de noob, mais je ne suis pas sûr de savoir comment je test pour voir si un élément je suis l'accès est valide pour un tableau, considérez les points suivants artificiel code:
func main() {
strings := []string{"abc", "def", "ghi", "jkl"}
for i := 0; i<5; i++ {
if strings[i] {
fmt.Println(strings[i])
}
}
}
https://play.golang.org/p/8QjGadu6Fu
Je suis évidemment d'aller au-delà des limites, mais je ne suis pas sûr de savoir comment je test pour éviter l'erreur. J'ai l'habitude de PHP où je voudrais utiliser un isset
ou !empty
test, n'allez ont une telle chose?
J'ai parcouru d'autres questions, et vu le len
fonction utilisée, mais qui ne semble pas fonctionner.
Utiliser le
len
fonction pour obtenir la longueur d'une tranche.OriginalL'auteur SeanDowney | 2015-03-10
Vous devez vous connecter pour publier un commentaire.
En Aller, ce n'est pas tout à fait aussi facile que dans le PHP, mais gardez à l'esprit qu'en PHP c'est facile parce que "indexée" les tableaux sont en fait des tableaux associatifs sous le capot. Sinon vous ne seriez pas en mesure de "punch " trous" dans les tableaux par la suppression des éléments individuels.
Avec Go tableaux/tranches, vous avez fait de contre-vérifier la longueur du tableau, comme vous l'avez écrit:
Personnellement, je ai pas encore rencontré un véritable mode de vie qui exige de faire cela dans votre exemple, vous pouvez utiliser
range(strings)
et arrêtez de vous inquiéter à propos des index.Avec des cartes, qui sont le rendez-vous de l'équivalent de tableaux PHP, vous pouvez le faire "isset" en écrivant:
si
index
est présent dans la carte,value
sera réglé de façon appropriée etisset
sera vrai; sinon,value
sera réglé à la valeur zéro de la carte, du type et de laisset
sera fausse.OriginalL'auteur rob74
len()
doit retourner le nombre d'éléments de la tranche.OriginalL'auteur Juan de Parras