Интерполяция строк Ruby

Веб-разработка на Ruby Программирование и разработка

Строковая интерполяция относится к процессу добавления заполнителей, которые ссылаются на другие значения в строковом объекте. Значения, интерполированные в строку, оцениваются как соответствующие им значения. Строковую интерполяцию можно рассматривать как форму внедрения шаблона.

В этом руководстве мы обсудим, как интерполировать строки в языке программирования 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 #{}

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

Читайте также:  Как преобразовать строку в int в C++?

Взгляните на пример ниже:

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 с использованием таких функций, как оператор сложения, сдвиг влево и оператор подстановки выражений.

Оцените статью
bestprogrammer.ru
Добавить комментарий