Interpolera en sträng

Lua:
Interpolera en sträng

Hur gör man:

local användarnamn = "Erik"
local ålder = 29
-- Använd string.format för interpolering
local hälsning = string.format("Hej, %s! Du är %d år gammal.", användarnamn, ålder)
print(hälsning)

Output:

Hej, Erik! Du är 29 år gammal.

Alternativt:

-- Med tabeller och uppslagning
local användare = {namn = "Erik", ålder = 29}
local hälsning = ("Hej, %s! Du är %d år gammal."):format(användare.namn, användare.ålder)
print(hälsning)

Output är densamma som ovan.

Deep Dive

Före string.format, skedde konkatenering av strängar och variabler manuellt, exempelvis: local hälsning = "Hej, " .. användarnamn .. "! Du är " .. ålder .. " år gammal." Vilket var både bökigt och svårläst. string.format erbjuder en ren och lättläst syntax som är särskilt användbar för komplexa eller långa strängar.

Lua använder format specifierare (såsom %s för strängar, %d för decimaltal) inuti strängen som ersätts av tillhörande värden. Detta koncept är inte unikt för Lua – det är inspirerat av C:s printf funktion.

Som alternativ kan man använda tabeller. I Lua kan tabellfält ha nästan vilken nyckeltyp som helst, men string keys är vanligast för detta syfte. Med en vältänkt struktur kan interpolering och datahantering förenklas, vilket kan vara kraftfullt i större program.

Se även: