Руби пытается понять новую запись. (inject (:) vs select (&: even?); почему есть &?)
Так что я'Мы только что узнали, что вместо того, чтобы писать такие вещи, как:
[1,2,3,4,5].inject {|x,y| x + y} => 15
Я мог бы написать
[1,2,3,4,5].inject(:+) => 15
Я также узнал, что вместо того, чтобы писать
[1,2,3,4,5].select {|x| x.even?} => [2,4]
Я мог бы написать
[1,2,3,4,5].select(&:even?) => [2,4]
Мой вопрос, почему один (выберите) использует&
а другой (впрыскивать) нет. Я'я уверен, что:
потому чтоeven?
а также+
обрабатываются в символах, но ябуду любить разъяснения, почему&
используется в одном и почему:
используются.
Также я'Я знаю, что я мог бы сделать эти записи больше, чем простоinject
а также .select
Большое спасибо!