Concatenazione di stringhe

Lua:
Concatenazione di stringhe

How to:

-- Concatenazione semplice con l'operatore ..
local saluto = "Ciao"
local nome = "Luca"
local messaggio = saluto .. ", " .. nome .. "!"
print(messaggio) -- Ciao, Luca!

-- Concatenazione con numeri (vengono trasformati in stringhe)
local giorno = 10
local mese = "Aprile"
local data = "Oggi è il " .. giorno .. " di " .. mese
print(data) -- Oggi è il 10 di Aprile

-- Utilizzo di table.concat per unire elementi di un array
local ingredientiPizza = {"Pomodoro", "Mozzarella", "Basilico"}
local pizza = table.concat(ingredientiPizza, ", ")
print(pizza) -- Pomodoro, Mozzarella, Basilico

Deep Dive

In Lua, la concatenazione di stringhe è stata da sempre un’operazione fondamentale. Nelle prime versioni di Lua, la concatenazione era già presente tramite l’operatore ... Con l’avanzare delle versioni e delle efficienza di LuaJIT, oggi concatenare le stringhe è un’operazione molto veloce.

Esiste anche la funzione table.concat che è ottimizzata per unire gli elementi di un array in una stringa, molto utile se si ha a che fare con un numero elevato di stringhe.

Un dettaglio implementativo importante è come Lua gestisce la memoria durante la concatenazione. Lua cerca di ottimizzare l’uso della memoria allocando spazio aggiuntivo quando si concatenano stringhe, per evitare il più possibile il riallocamento di memoria.

Alternativamente, per evitare un uso eccessivo della memoria durante concatenazioni multiple, si può optare per l’uso di tabelle (table) e table.concat per ridurre la quantità di riallocazioni di memoria che avvengono quando si concatenano stringhe numerose e grandi.

See Also