Подтвердить что ты не робот

Как создать символ из строки с пробелами?

Я создаю хеш файл Ruby для хранения имен фильмов.

Когда хеш-ключи являются строками, содержащими пробелы, они работают нормально.

Как в:

movies = {"Avatar" => 5, "Lord of the rings" => 4, "Godfather" => 4}

Теперь я пытаюсь заменить использование строк символами:

movies = {Avatar: 5, Lord of the rings: 4, Godfather: 4}

Очевидно, что это не работает.

Как Ruby обрабатывает пробелы в именах символов?

4b9b3361

Ответ 1

Попробуйте сами

"Lord of the rings".to_sym
#=> :"Lord of the rings"

Ответ 2

Я не уверен, почему вы хотите использовать символы, когда хотите пробелы в значениях ключа, но вы можете это сделать. Вы просто не можете сделать это, используя синтаксис <symbol>: <value>...

{:Avatar => 5, :"Lord of the rings" => 4, :Godfather => 4}

Ответ 3

Чтобы создать символ с пробелами, введите двоеточие, за которым следует строковая строка. Для вашего примера вы должны ввести:

movies = {:Avatar => 5, :'Lord of the rings' => 4, :Godfather => 4}

Ответ 4

Поздно к партии, но другой способ обойти это - сделать следующее:

movies = Hash.new

movies["the little mermaid".to_sym] = 4