Работа с 3 или более аргументами по умолчанию Ruby - PullRequest
0 голосов
/ 19 ноября 2018

Я видел несколько примеров передачи аргументов по умолчанию при создании методов, но ни один из них, похоже, не подходит, если вы хотите заменить только первый и третий аргумент ... вот пример

def foo(a = 1, b = 2, c = 3)
    puts [a, b, c]
end

foo(1, 2) 
#=> [1, 2, 3]

Когда я пытаюсь назначить a = 5 и c = 7 и оставить для b значение по умолчанию, например:

foo(a=5,c=7) 

Я получаю

=> 5,7,3

но я ожидаю 5,2,7

Как правильно это сделать?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Я видел несколько примеров передачи аргументов по умолчанию при создании методов, но ни один из них, кажется, не обращается, если вы хотите заменить только первый и третий аргумент ...

Это потому, что это невозможно.

Аргументы по умолчанию привязываются слева направо.Я написал больше о том, как аргументы связаны с параметрами в ответе на эти вопросы:

0 голосов
/ 19 ноября 2018

Использование аргументов ключевого слова?

def foo(a: 1, b: 2, c: 3)
  puts [a, b, c]
end

foo(a: 5, c: 7) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...