Interpolazione di una stringa

Lua:
Interpolazione di una stringa

How to:

In Lua non esiste un operatore di interpolazione di stringa nativo, ma si può utilizzare la funzione string.format.

local nome = "Luca"
local eta = 30
local stringa_interpolata = string.format("Ciao, mi chiamo %s e ho %d anni.", nome, eta)
print(stringa_interpolata) -- Ciao, mi chiamo Luca e ho 30 anni.

Per stringhe multilinea o con formattazione complessa, potete usare i cosiddetti “literals” (stringhe letterali):

local prezzo = 19.99
local prodotto = "tastiera"
local messaggio = [=[
Gentile cliente,
Il prezzo della tua %s è di €%.2f.
]=]

print(messaggio:format(prodotto, prezzo))
-- Gentile cliente,
-- Il prezzo della tua tastiera è di €19.99.

Deep Dive

La funzione di string.format in Lua è simile alla funzione sprintf in C e alle sue varianti in altri linguaggi, offrendo un modo familiare per i programmatori per lavorare con le stringhe.

In Lua 5.1, l’interpolazione di stringa non è un’operazione integrata, il che può sembrare una limitazione. Ogni volta che chiamate string.format, esplicitamente dichiarate il tipo di formato per ogni valore (ad esempio, %s per le stringhe e %d per i numeri interi).

Gli alternative, come le template strings in JavaScript o le f-strings in Python, non sono supportate nativamente in Lua, quindi string.format rimane la soluzione preferita.

A livello di implementazione, l’uso delle funzioni di stringa può rallentare leggermente il vostro programma se usate l’interpolazione in grandi cicli o in funzioni chiamate frequentemente. È importante considerare l’overhead di prestazione per le applicazioni che richiedono alta performance.

See Also