2017-01-30 15 views
-1

Недавно я наткнулся на метод, который выглядит так: add(1).(2). Это было в Code Wars. Я просто должен принять это 2 argumenst и сделать их приравненными 3. Я думаю, что это просто, но я никогда не видел таких аргументов (я новичок).Странные аргументы метода в Ruby

У вас есть источник, где я мог бы прочитать об этом? Или вы могли бы объяснить это?

Если вам нужна дополнительная информация, я беру этот пример здесь: https://www.codewars.com/kata/539a0e4d85e3425cb0000a88/train/ruby

+1

post реальный, воспроизводимый образец кода –

+0

@ Andrey Deineko, сделал это) –

+0

Обратите внимание, что 'add (1) (2)' не является допустимым синтаксисом Ruby. –

ответ

1

Это сокращенное обозначение называть выражение: Proc или лямбда

proc.call(arg) 
proc[arg] 
proc.(arg) 
proc::(arg) 

все эквивалентны.

На самом деле это работает с любым объектом, который отвечает на call, так как Ruby так утка.

+0

Я очень благодарен вам за помощь. –

+0

Рад слышать! Может быть, лучше всего проголосуйте за ответ и отметьте его галочкой. – akuhn

+0

Пожалуйста, не просите голосов или быть выбранным ответом. Это считается плохим. Если через пару дней плакат не отобрал ответ, после этого опубликуйте комментарий по вопросу, предлагающий правильно выбрать ответ. http://meta.stackoverflow.com/q/287723/128421 –