Я узнаю об использовании символов в Ruby и понял, что они действуют в основном как ссылки на переменные, ключи в хэш-таблицах и даже как способ отправки блоков в методы.Использование символов для ссылок в Ruby, например. : +,: -,: *
Мои вопросы: что такое символы, такие как :+
:-
:*
, ссылаясь, когда я использую их в методе?
например. используя :+
просуммировать все значения в массиве:
puts [1,2,3].reduce(:+)
=> 6
дает тот же результат, как:
puts [1,2,3].reduce {|sum, i| sum += i}
=> 6
и если я создаю свою собственную версию: +
a = lambda {|sum,i| sum += i}
puts [1,2,3].reduce(&a)
=> 6
Мой первый мысль есть поэтому :+
ссылки {|sum, i| sum += i}
как явный блок, но у меня были проблемы с поиском информации, чтобы подтвердить это.
информация здесь: http://stackoverflow.com/questions/4014190/passing-an-operator-to-a-function –
Спасибо за ссылки! –