лямбда-функция не работает с каждым - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь использовать лямбды в качестве блоков для каждого массива:

(1..10).each ->(i) {p i}

Но я получаю эту ошибку:

ArgumentError: wrong number of arguments (given 1, expected 0)                   

Почему это происходит? У лямбды ровно один аргумент.

1 Ответ

0 голосов
/ 03 мая 2018

Range#each не принимает лямбду, она занимает блок. Лямбда передается в качестве аргумента, чего Range#each не ожидает. Попробуйте вместо этого:

(1..10).each { |i| p i }

Вы можете преобразовать лямбду, если вы так склонны:

lam = ->(i) { p i }
(1..10).each(&lam)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...