В Ruby, что делает хеш с прямоугольными скобками? - PullRequest
0 голосов
/ 20 февраля 2012

В Ruby, что делает хеш с прямоугольными скобками?пример ->

quantity = { :buy => 1, :sell => -1}[action.to_sym]

Ответы [ 3 ]

6 голосов
/ 20 февраля 2012

Это эквивалентно

hash = { :buy => 1, :sell => -1}
quantity = hash[action.to_sym]

Работает также для массивов или строк:

['a', 'b', 'c'][1]    # -> 'b'
'abc'[1]              # ->  'b'
2 голосов
/ 20 февраля 2012

Возвращает значение (которое находится справа от стрелки =>), соответствующее ключу (что находится слева от стрелки), указанному в [].Например, если action.to_sym окажется :buy, то quantity будет 1.

0 голосов
/ 20 февраля 2012

Любой код в ruby ​​имеет объектный результат.Таким образом, { :buy => 1, :sell => -1} дает хеш-объект с ключами и значениями.Хэш это структура данных, которая имеет ключи и значения.Вы можете получить значение по ключу через скобки следующим образом: hash[:buy].Итак, у вас есть хеш-объект после { :buy => 1, :sell => -1} и вы получаете значение по ключу action.to_sym

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...