#ruby
#ruby
Вопрос:
Я видел некоторый хэш, подобный следующему, в каком-то файле конфигурации .rb
cache( :path => "#{currentDir}/cache" )
почему не использовать {}?
Ответ №1:
кэш — это метод, синтаксис которого подобен
method( a => b , c => d )
является сокращением (синтаксический сахар) для
method({ a => b , c => d})
Ответ №2:
В ruby, если единственным аргументом метода является хэш, используются фигурные скобки.
отредактируйте, чтобы прояснить это: cache()
это метод, который принимает хэш в качестве аргумента, вероятно, такой:
def cache(*args)
# ...
end
Комментарии:
1. Ну, потому что это не имеет смысла. Фигурные скобки предназначены для инкапсуляции ключей и значений хэша. В этом примере у вас есть только фигурные скобки вокруг значения.
2. Это работает не только в том случае, если хэш является единственным аргументом. Если последним аргументом является хэш, вы можете оставить фигурные скобки. Также подпись была бы больше похожа на
def cache(opts = {})
, по крайней мере, в Rails.