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 динамически типизирован и поддерживает выражения в строках на первом уровне. Но помните, что лучше использовать его для более простых выражений, чтобы сохранить читабельность.
Смотрите также
- Документация модуля
Stringв Elixir: https://hexdocs.pm/elixir/String.html - Руководство по бинарному типу данных в Elixir: https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html