2 votes

Que signifie l'esperluette à la fin d'un paramètre Ruby ?

Voici un exemple d'arguments nommés en Ruby, mais à quoi sert l'esperluette ?

def set_tools(foo:, bar:, baz:)
    @instance_variable = baz&.stuff

6voto

Deepak Mahakale Points 13858

On l'appelle Opérateur de navigation en sécurité . Introduit dans ruby 2.3.0

Vous pouvez l'utiliser pour vous assurer que la valeur existe avant d'appeler une méthode sur elle.

Par exemple :

a = nil

a.some_method # This will break

#=> NoMethodError: undefined method `some_method' for nil:NilClass

a&.some_method # This will not

#=> nil

Vous pouvez utiliser cet opérateur à la place de

a && a.some_method && a.some_method.some_other_method
# OR
a.try(:some_method).try(:some_other_method)

Utilisation de cet opérateur

a&.some_method&.some_other_method

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