J'écris une fonction qui renvoie une séquence de nombres de longueur variable:Équivalent dans Aller à un vecteur C++ <int>?
func fib(n int) ??? {
retval := ???
a, b := 0, 1
for ; n > 0; n-- {
??? // append a onto retval here
c := a + b
a = b
b = c
}
}
On peut observer que la longueur finale de la séquence retournée sera n
. Comment et quoi fib
retourner pour atteindre Go idiomatique? Si la longueur n'était pas connue à l'avance, comment la valeur de retour et l'utilisation diffèrent-elles? Comment insérer des valeurs dans retval
?
Vous pouvez nommer la valeur de retour et faire des choses avec elle ?! C'est génial! –
Votre réponse est wiki communautaire, je suppose que vous n'obtiendrez pas vos points bien mérités, merci beaucoup pour une bonne réponse. –
"Dans une liste de paramètres ou de résultats [fonction], les noms (IdentifierList) doivent tous être présents ou tous être absents.Si ils sont présents, chaque nom représente un élément (paramètre ou résultat) du type spécifié; chaque type correspond à un élément de ce type Les listes de paramètres et de résultats sont toujours entre parenthèses sauf que s'il y a exactement un résultat sans nom, il peut être écrit comme un type non-protégé. http://golang.org/doc/go_spec.html#Function_types – peterSO