При использовании 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:) endfoo(bar: 42) :name - символ. name: "Bob" - это специальный короткий синтаксис для определения хэша с символом :name ключ и строка "Bob" как значение, которое в противном случае было бы записано как { :name => "Bob" }.
Вы можете использовать его после создания хэша.
Вы используете его раньше, когда хотите ссылаться на символ.
В примере Arup {name: 'foo'} вы создаете символ и используете его как ключ.
Позже, если этот хеш хранится в переменной baz, вы можете ссылаться на созданный ключ как символ:
 baz[:name]