Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Du nouveau dans Ruby 2.1: Argument nommé et requis

| Comments

Niveau : facile

Ruby 2.0 a introduit les arguments nommés, appelés keyword argument dans la langue de Shakespeare, soit: «argument mot-clé». Ruby 2.1 ajoute la notion d’argument nommé et requis.

Voilà à quoi ça ressemble, un argument nommé:

1
2
3
4
5
def foo(arg: "hello")
  puts arg
end

foo #=> "hello"

Avant Ruby 2.1

Mais en Ruby 2.0, vous êtes obligé de donner une valeur par défaut:

[~]⇒ rvm use 2.0.0
[~]⇒ irb
1
2
3
4
>> def foo(arg:)
>>   puts arg
>> end
SyntaxError: (irb):10: syntax error, unexpected ')'

Imaginez que ça soit pareil avec les arguments dit normaux. On ne pourrait pas écrire:

def foo(arg)

On serait obligé d’écrire à la place:

def foo(arg="hello")

Un peu bizarre, non ?

Avec Ruby 2.1

On peut maintenant définir un argument nommé sans valeur par défaut, et donc faire en sorte qu’il soit requis:

[~]⇒ rvm use 2.1.0-preview1
[~]⇒ irb
1
2
3
4
5
6
7
8
9
10
>> def foo(arg:)
>>   puts arg
>> end
=> :foo
>> foo
ArgumentError: missing keyword: arg
>> foo "hello"
ArgumentError: missing keyword: arg
>> foo arg: "hello"
hello

Source (pdf) toruby

À demain.

Articles connexes

Commentaires