0Pricing
Ruby Academy · Урок

Символы и строки

Когда использовать символы

«Символы и строки» — бесплатный урок Ruby Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.

Что такое символ?

Символ — это лёгкое неизменяемое имя, записываемое с начальным двоеточием, например :name. Символы часто используют как идентификаторы и ключи хеша.

status = :active
puts status
puts status.class

Символы неизменяемы

В отличие от строк, символы нельзя изменить. Если :hello уже существует, он всегда остаётся прежним.

puts :hello.frozen?
puts "hello".frozen?

Один символ — один объект

Каждое использование одного и того же символа указывает на один общий объект в памяти. Две одинаковые строки обычно являются разными объектами.

puts :ruby.object_id == :ruby.object_id
puts "ruby".object_id == "ruby".object_id

Почему символы экономят память

Поскольку одинаковые символы используют один общий объект, повторное применение символов в качестве ключей эффективно расходует память. Для строк при каждом использовании создавался бы новый объект.

ids = [:a, :a, :a]
puts ids.map(&:object_id).uniq.length

Преобразование между ними

Используйте to_sym, чтобы создать символ из строки, и to_s, чтобы выполнить обратное преобразование.

word = "color"
sym = word.to_sym
puts sym
puts sym.to_s.upcase

Символы в качестве ключей хеша

Символы — самые распространённые ключи хеша в Ruby, потому что они работают быстро и никогда не изменяются.

person = { name: "Ada", age: 36 }
puts person[:name]
puts person[:age]

Сокращённый синтаксис

Если ключи являются символами, запись name: "Ada" является сокращением для :name => "Ada". Обе записи создают ключи-символы.

a = { color: "red" }
b = { :color => "red" }
puts a == b

Символы в вызовах методов

Символы задают имена методов для таких инструментов, как send и map(&:method). Запись &:upcase превращает символ в блок.

words = ["a", "b", "c"]
puts words.map(&:upcase).inspect

Когда использовать строку

Используйте строку, когда значение нужно отображать, создавать или изменять: например, для имён, сообщений или содержимого файла. У строк есть множество методов для работы с текстом.

greeting = "Hello"
greeting << ", world"
puts greeting

Когда использовать символ

Используйте символ для постоянных идентификаторов: ключей хеша, состояний и имён параметров. Они показывают намерение и не изменяются случайно.

def move(direction)
  puts "Moving #{direction}"
end
move(:north)

Сравнение символов и строк

Символ и строка с одинаковыми буквами не равны. Это значения разных типов.

puts :name == "name"
puts :name.to_s == "name"

Быстрая проверка

Проверьте, что Вы знаете о символах.

Итоги

Теперь Вы знаете разницу:

  • Символы неизменяемы, общие и идеально подходят для ключей и идентификаторов
  • Строки изменяемы и предназначены для работы с текстовыми данными
  • преобразуйте их с помощью to_sym и to_s
  • :a == "a" возвращает false

Далее: создание и чтение хешей.

config = { mode: :fast }
puts config[:mode]

Часто задаваемые вопросы

Урок «Символы и строки» бесплатный?

Да — полный текст урока «Символы и строки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.

Чему я научусь в уроке «Символы и строки»?

Когда использовать символы Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ruby Academy?

Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Символы и строки»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ruby Academy?

Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Символы и строки
  2. Создание и чтение хешей
  3. Итерация по хешу
  4. Значения по умолчанию и объединение
← Назад к Ruby Academy