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

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

Как это сделать:

name = "Josie"
age = 28

# Интерполяция переменных
greeting = "Привет, #{name}! Тебе #{age} лет."
IO.puts greeting

Пример вывода:

Привет, Josie! Тебе 28 лет.
# Интерполяция выражений
IO.puts "Через пять лет, #{name} будет #{age + 5} лет."

Пример вывода:

Через пять лет, Josie будет 33 года.

Подробнее

В начале разработчики соединяли строки с помощью + или ,. Это было неудобно. Затем языки программирования начали использовать интерполяцию для более чистого и читабельного подхода. Elixir, как современный язык программирования, также нативно поддерживает эту функцию.

Вот что происходит под капотом с "Привет, #{name}!": во время компиляции, Elixir преобразует строку в конкатенацию бинарных частей, что эффективно, поскольку бинари в Elixir неизменяемы.

Альтернативные способы работы со строками без интерполяции в Elixir могут включать использование String.concat/2 или оператора <>, но эти методы менее удобны для сложных строк.

Синтаксис интерполяции "#{...}" может включать любое выражение Elixir, которое оценивается и затем преобразуется в строку. Это возможно благодаря тому, что Elixir динамически типизирован и поддерживает выражения в строках на первом уровне. Но помните, что лучше использовать его для более простых выражений, чтобы сохранить читабельность.

Смотрите также