Samenvoegen van strings

Lua:
Samenvoegen van strings

Hoe te:

In Lua voeg je strings samen met de .. operator. Laten we het in actie zien:

local hello = "Hallo, "
local world = "wereld!"
local begroeting = hello .. world

print(begroeting)  -- Uitvoer: Hallo, wereld!

Je kunt zelfs nummers toevoegen met een beetje dwang:

local base = "Ik heb "
local itemCount = 3
local bericht = base .. itemCount .. " appels"

print(bericht)  -- Uitvoer: Ik heb 3 appels

Onthoud, de conversie van niet-string types is handmatig:

local score = 9001
local displayScore = "Jouw score is: " .. tostring(score)

print(displayScore)  -- Uitvoer: Jouw score is: 9001

Diepere Duik

Stringconcatenatie lijkt misschien alledaags, maar het is essentieel. In de begindagen van Lua was het bedoeld voor ingebedde systemen, wat betekende dat alles licht moest blijven. Daarom werd .. gekozen voor strings - het is eenvoudig maar effectief.

Alternatieven voor .. zijn:

  • table.concat functie voor arrays van strings, efficiënter voor het samenvoegen van veel strings.
  • Stringbibliotheekfuncties zoals string.format, die meer controle bieden over de opmaak.

De prestaties van stringconcatenatie in Lua waren een zorgpunt, specifiek met .. omdat elk gebruik een nieuwe string creëert, wat kostbaar kan zijn in lussen. Om dit te mitigeren, gebruik je tabellen bij het samenvoegen in een lus:

local parts = {}
for i = 1, 10 do
    parts[i] = "Deel " .. i
end
local combined = table.concat(parts, ", ")

print(combined)  -- Uitvoer: Deel 1, Deel 2, ... Deel 10

Intern beheert Lua strings in een hash-tabel om het geheugengebruik te optimaliseren, zodat identieke strings dezelfde opslag delen. Maar, concatenatie breekt deze deling vanwege de nieuwe strings die het creëert.

Zie Ook