Страницы

Поиск по вопросам

пятница, 5 апреля 2019 г.

Обьясните в чем разница между symbol и string

На примере 2-х хешей hash={:fruit=>"Apple", :vegetable="Cucumber"} и hash={"fruit"=>"Apple", "vegetable"="Cucumber"}. Расскажите в чем разница между этими сущностями и где применяют symbol.


Ответ

Переменная - это именованная область памяти, она содержит имя и значение, значение можно менять.
Строка - это просто область памяти, которую вы можете изменять.
Символ - это просто имя. Эта конструкция очень популярна в функциональных языках и обычно называется атомом - нечто неделимое и неизменное. Например, белый цвет, :white - нет надобности для значения, нет надобности для изменения - белый цвет останется белым цветом, чтобы не происходило. Это символ в Ruby.
Используется символы там, где значение не требуется, например, для перечислений, передачи имени ключа или метода. Строки и символы можно преобразовывать друг в друга, однако это разные классы.

Комментариев нет:

Отправить комментарий