Урок четвёртый: Символы

Введение в Ruby [HEXLET]

Что рассказывается в видео

Вот именно этот урок мне вообще не понравился. Во первых он очень короткий и не структурированный. А во вторых нет ни ссылок на теорию, ни какой либо внятной информации по теме урока. Всё как то в спешке подаётся. Я толком ни фига не понял. Пришлось искать на других источниках.

В видео автор говорит, что в программах на Ruby часто можно встретить записи вида :asdf — это особый тип данных под названием СИМВОЛ.

Символы это сахарный тип. Что значит сахарный — сами догадывайтесь! Пошёл гуглить, что за сахарный тип.

Синтаксический сахар — опция или возможность, применение которой не влияет на поведение программы, но при этом упрощает процесс написания этой программы. Чаще всего синтаксический сахар является альтернативным способом записи языковой конструкции.

Порывшись в книге Пушкина, под названием Ruby для Романтиков, я узнал, что данные типа символ активно используются для повторяющихся значений переменных, с целью уменьшения занимаемого места в памяти.

Что я нашёл в интернете по теме урока

Ранее я усвоил что любое значение в языке программирования Ruby — является объектом. Объекты уникально идентифицируются ссылками на него. Что бы узнать значение этой ссылки, нужно воспользоваться методом object.object_id

Отличный пример в сравнении символов со строками.

Если переключиться в режим irb и несколько раз подряд попытаться получить значение ссылки на один и тот же объект типа СТРОКА, то мы увидим, что всякий раз значение будет меняться на 20

Урок четвёртый: Символы
Пример различия ссылки на объект.

При этом в аналогичной ситуации, при запросе ссылки на тип Символ, мы заметим, что всякий раз значение ссылки на объект идентично!

Урок четвёртый: Символы
Пример постоянства значения ссылки на объект типа Символ.

Это значит, что все упоминания символа ссылаются на одно и то же значение в памяти программы. Это поведение схоже с типом данных ЧИСЛО.

Следовательно, если в нашей программе есть переменные типа строка с идентичным значением, которое повторяется в разных частях программы, то место, выделяемое под эти данные можно оптимизировать за счёт явного преобразования типо данных Строка в тип данных Символ. В таком случае будет выделяться место только под одно значение объекта.

Если я правильно понял, тип данных символ, позволяет экономить память и делает процесс написания программ более комфортным. Посмотрим что будет дальше по теме символов.

Полезные ссылки на ресурсы

В этом уроке не было никаких ссылок на ресурсы для самостоятельного изучения темы, поэтому я решил добавить от себя. Нидже вы найдёте ссылки, которые помогли мне немного лучше понять тему урока — Что такое тип объекта Символ и для чего он нужен

Юрий Ронин