В Ruby, что делает хеш с прямоугольными скобками?пример ->
quantity = { :buy => 1, :sell => -1}[action.to_sym]
Это эквивалентно
hash = { :buy => 1, :sell => -1} quantity = hash[action.to_sym]
Работает также для массивов или строк:
['a', 'b', 'c'][1] # -> 'b' 'abc'[1] # -> 'b'
Возвращает значение (которое находится справа от стрелки =>), соответствующее ключу (что находится слева от стрелки), указанному в [].Например, если action.to_sym окажется :buy, то quantity будет 1.
=>
[]
action.to_sym
:buy
quantity
1
Любой код в ruby имеет объектный результат.Таким образом, { :buy => 1, :sell => -1} дает хеш-объект с ключами и значениями.Хэш это структура данных, которая имеет ключи и значения.Вы можете получить значение по ключу через скобки следующим образом: hash[:buy].Итак, у вас есть хеш-объект после { :buy => 1, :sell => -1} и вы получаете значение по ключу action.to_sym
{ :buy => 1, :sell => -1}
hash[:buy]