Строковая интерполяция относится к процессу добавления заполнителей, которые ссылаются на другие значения в строковом объекте. Значения, интерполированные в строку, оцениваются как соответствующие им значения. Строковую интерполяцию можно рассматривать как форму внедрения шаблона.
В этом руководстве мы обсудим, как интерполировать строки в языке программирования Ruby.
Using + Operator
Самый простой способ интерполировать значения в буквальную строку — использовать оператор сложения. Рассмотрим пример, показанный ниже:
name = «Alice»
puts «Hello « + name
В приведенном выше примере мы объявляем переменную с именем name. Он содержит значение «Алиса». Используя оператор сложения, мы интерполируем его в строковое значение.
Интерпретатор Ruby получит значение, на которое ссылается имя переменной, и будет использовать его как фактическое значение. Результат выглядит следующим образом:
$ ruby interpolation.rb
Hello Alice
Оператор сложения содержит недостаток при интерполяции переменных в строку. Он работает только со строковыми объектами.
Вот пример:
age = 10
puts «I am « + age + » years old»
Если вы попытаетесь выполнить такую операцию, Ruby вернет TypeError
`+ ’: Нет неявного преобразования из нуля в String (TypeError)
Один из способов решить такую проблему — преобразовать переменную в строку с помощью метода to_s.
Например:
age = 10
puts («I am « + age.to_s + » years old»)
Теперь мы можем вставить целочисленную переменную в строку, преобразовав ее в строку.
Using the << Operator
Оператор сдвига влево работает аналогично оператору сложения. Он вставляет переданную переменную в строковый литерал.
Пример:
lang = «Ruby»
puts lang << » is an fun!»
Подобно оператору сложения, вы должны преобразовать переменную в строку, чтобы предотвратить ошибки TypeErrors.
Using #{}
Два метода, которые мы обсуждали выше, имеют один недостаток; становится сложно выполнить выражение внутри строкового литерала.
Взгляните на пример ниже:
radius = 7.43
puts «The area of the cirlcle of radius « + radius.to_s + » is « + radius * radius * 3.141 + » cm2″
Вышеупомянутая операция невозможна с использованием методов, которые мы обсуждали выше.
Чтобы решить эту проблему, мы можем использовать оператор подстановки выражения в Ruby:
Синтаксис такой:
#{variable}
Мы помещаем переменную или выражение в фигурные скобки. Ruby оценит выражение и выполнит интерполяцию в строку.
Рассмотрим предыдущий пример с использованием оператора интерполяции.
radius = 7.43
puts «The area of the cirlcle of radius #{radius} is #{radius * radius * 3.141} cm2»
Так намного лучше. Используя указанную выше нотацию, мы можем вставить одну переменную и допустимые выражения ruby внутри строки.
Ниже приведен результат:
$ ruby substring.rb
The area of the cirlcle of radius 7.43 is 173.3985909 cm2
В этом случае нам не нужно выполнять выражение, преобразовывать его в строку, а затем интерполировать в строку.
Используя этот метод, Ruby обо всем позаботится.
Заключение
В этом руководстве показано, как работать со строковой интерполяцией на языке Ruby с использованием таких функций, как оператор сложения, сдвиг влево и оператор подстановки выражений.