Comment retourner un int ou nul dans golang?

Je suis un développeur java et j'apprends Aller.
Je suis en train d'écrire un simple " pop " de l'opération pour une pile LIFO. La question est de savoir avec la valeur de retour quand il n'y a pas de valeurs dans la pile. En java, je suis en mesure de retourner un wrapper(Entier) dans le cas positif et null si il n'y a pas de valeurs. Il est naturel de mon point de vue.

Comment puis-je faire quelque chose de similaire en Aller? Existe-il des struct des wrappers pour les primitives? Dois-je retourner deux valeurs(la deuxième indique le code d'erreur)? Ou dois-je lancer une exception?

Voici à quoi il ressemble pour l'instant:

func (s *stack) Pop() (int, bool)  {
    if s.size == 0 {
        return 0, true
    }
    s.size--
    val := s.stack[s.size]
    return val, false
}

Est-il bon style?

  • Vous pouviez retourner un *int. Vous ne savez pas si c'est agréable, bien que.
  • Veuillez noter que la langue est appelée "Go". Deux lettres, la première capitalisées". golang" est une partie du nom de domaine et un mot-clé spécial compris par un moteur de recherche populaire détenue par une société où le développement de Go à l'origine.
  • Un autre point est que Go ne fait pas exception (heureusement). Il a panic() et recover() mais ils sont pas exceptions; traiter les erreurs comme des valeurs, et envisagez de traiter judicieusement 😉
InformationsquelleAutor the_kaba | 2017-10-13