При использовании Ruby я все время смешиваюсь с :
.
Может кто-нибудь объяснить, когда я должен использовать его перед именем переменной, например :name
, и когда я должен использовать его после переменной типа name:
?
Пример был бы возвышенным.
При использовании Ruby я все время смешиваюсь с :
.
Может кто-нибудь объяснить, когда я должен использовать его перед именем переменной, например :name
, и когда я должен использовать его после переменной типа name:
?
Пример был бы возвышенным.
Приглашаем вас обоих, создав Hash
:
{:name => "foo"}
#or
{name: 'foo'} # This is allowed since Ruby 1.9
Но в основном :name
является Symbol
объектом в Ruby.
Из docs
Хэши допускают альтернативную синтаксическую форму, когда ваши ключи всегда являются символами. Вместо
options = { :font_size => 10, :font_family => "Arial" }
Вы можете написать это как:
options = { font_size: 10, font_family: "Arial" }
Это не имеет ничего общего с переменными.
:foo
является литералом Symbol
, так же как 'foo'
является литералом String
, а 42
является литералом Integer
.
foo:
используется в трех местах:
Symbol
литералов как ключ литерала Hash
: { foo: 42 } # the same as { :foo => 42 }
def foo(bar:) end
foo(bar: 42)
:name
- символ. name: "Bob"
- это специальный короткий синтаксис для определения хэша с символом :name
ключ и строка "Bob"
как значение, которое в противном случае было бы записано как { :name => "Bob" }
.
Вы можете использовать его после создания хэша.
Вы используете его раньше, когда хотите ссылаться на символ.
В примере Arup {name: 'foo'}
вы создаете символ и используете его как ключ.
Позже, если этот хеш хранится в переменной baz, вы можете ссылаться на созданный ключ как символ:
baz[:name]