Interpolacja łańcuchów znaków

Lua:
Interpolacja łańcuchów znaków

How to: (Jak to zrobić:)

Lua nie ma wbudowanej funkcji interpolacji łańcuchów, ale można osiągnąć podobny efekt wykorzystując string.format lub grawisów (w wersji 5.3+).

-- Użycie string.format
local name = "Łukasz"
local age = 28
local greeting = string.format("Cześć, nazywam się %s i mam %d lat.", name, age)
print(greeting)  -- Cześć, nazywam się Łukasz i mam 28 lat.

-- Użycie grawisów
local temperature = 23.5
local weather = "Temperatura dzisiaj to: `${tempC}°C`."
weather = weather:gsub('`', ''):gsub("%${(.-)}", {tempC = temperature})
print(weather)  -- Temperatura dzisiaj to: 23.5°C.

Deep Dive (Dogłębna analiza):

Lua nie ma wbudowanej interpolacji łańcuchów jak w niektórych innych językach (np. Ruby czy Python). Musimy używać funkcji string.format, która działa podobnie do printf w C, lub pisać własne rozwiązania.

Wersja 5.3+ wprowadziła mechanizm do obsługi UTF-8, co umożliwia lepszą manipulację polskimi znakami w stringach. Warto zdawać sobie sprawę, że każde niestandardowe rozwiązanie może wprowadzać dodatkowe złożoności, jak różnicowanie wydajności czy czytelności.

Alternatywnie, możemy zaimplementować własną funkcję interpolującą, używając gsub do zamiany określonych wzorców w tekście przez wartości z tabeli.

See Also (Zobacz również):