Lua:
Интерполяция строки
Как это сделать:
В Lua используйте ..
для конкатенации или string.format
для интерполяции. Пример:
local name = "Ада"
local greeting = "Привет, " .. name .. "!"
print(greeting) -- Вывод: Привет, Ада!
local age = 30
local bio = string.format("%s %d лет.", name, age)
print(bio) -- Вывод: Ада 30 лет.
Глубокое погружение
Исторически Lua не имела встроенной интерполяции строк, в отличие от некоторых других языков (например, Ruby, Python). Конкатенация с ..
была основным способом. Lua 5.3 ввела string.format
для более чистого подхода, аналогичного printf
в C. Альтернативы: Помимо использования оператора ..
или string.format
, вы также можете написать свою собственную функцию интерполяции, которая использует gsub для сопоставления с образцом. Но зачем усложнять? Используйте встроенные инструменты для обеспечения поддерживаемости. Детали реализации: Имейте в виду, что частая конкатенация строк может привести к проблемам с производительностью. string.format
полезен, когда вам нужен контроль форматирования, например, указание точности чисел или заполнение.
Смотрите также
- Руководство Lua по строкам: http://www.lua.org/manual/5.4/manual.html#6.4
- “Программирование на Lua” по строкам: https://www.lua.org/pil/20.1.html
- Вики пользователей Lua по строкам: http://lua-users.org/wiki/StringLibraryTutorial