652 votes

Les Paramètres Facultatifs?

Peut Aller paramètres facultatifs? Ou puis-je définir deux fonctions avec le même nom et un nombre variable d'arguments?

578voto

Andrew Hare Points 159332

Aller n'a pas de paramètres facultatifs ni ne prend en charge la surcharge de méthode:

Méthode d'expédition est simplifié si c' n'a pas besoin de faire de ce type de correspondance que bien. L'expérience avec d'autres langues nous a dit que le fait d'avoir une variété de méthodes avec le même nom mais les différentes signatures, a été occasionnellement utile, mais qu'il pourrait aussi être déroutant et fragile dans la pratique. Correspondant seulement par nom et exigeant la cohérence dans les types a été l'un des principaux la simplification de la décision de Go type de système.

305voto

Ferguzz Points 1074

J'belle façon de parvenir à quelque chose comme des paramètres optionnels est d'utiliser variadic args. La fonction reçoit effectivement une tranche de quelque type que vous spécifiez.

func foo(params ...int) {
    fmt.Println(len(params))
}

func main() {
    foo()
    foo(1)
    foo(1,2,3)
}

220voto

deamon Points 15181

Vous pouvez utiliser une structure qui comprend les paramètres:

type Params struct {
  a, b, c int
}

func doIt(p Params) int {
  return p.a + p.b + p.c 
}

// you can call it without specifying all parameters
doIt(Params{a: 1, c: 9})

23voto

peterSO Points 25725

Ni les paramètres facultatifs ni de surcharge de fonctions sont prises en charge en Aller. Aller prend en charge un nombre variable de paramètres: le Passage d'arguments dans les paramètres ...

11voto

Alex Martelli Points 330805

Pas de ni. Pour l' Aller pour les programmeurs en C++ docs,

Aller ne prend pas en charge la fonction la surcharge et ne prend pas en charge l'utilisateur défini les opérateurs.

Je ne peux pas trouver une façon énoncé clair que les paramètres facultatifs sont pas pris en charge, mais ils ne sont pas pris en charge.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X