Łączenie łańcuchów znaków

Lua:
Łączenie łańcuchów znaków

How to: (“Jak to zrobić:”)

-- Łączenie za pomocą operatora ..
local napis1 = "Dzień"
local napis2 = " dobry!"
local przywitania = napis1 .. napis2
print(przywitania) -- Wyświetla "Dzień dobry!"

-- Łączenie z użyciem funkcji table.concat
local slowa = {"Hej", "świecie", "to", "Lua!"}
local zdanie = table.concat(slowa, " ")
print(zdanie) -- Wyświetla "Hej świecie to Lua!"

-- Formatowanie z użyciem string.format
local imie = "Anna"
local powitanie = string.format("Cześć, %s!", imie)
print(powitanie) -- Wyświetla "Cześć, Anna!"

Deep Dive (“Dogłębna analiza”)

Łączenie napisów jest fundamentem większości języków programowania i bywa często wykorzystywane w Lua. Historycznie, operacje na napisach bywały wolne, dlatego wydajność była często ważna. W Lua operator .. jest szybki, ale przy łączeniu wielu napisów lepszym wyborem może być table.concat, z uwagi na niższą złożoność czasową. string.format natomiast jest idealny do skomplikowanego formatowania i dodatkowo korzystny, gdy chcemy dbać o czytelność.

Alternatywą dla operatora .. mogą być bufory napisów lub funkcje biblioteki string. Bufory napisów są użyteczne, gdy pracujemy z bardzo dużymi napisami lub w sytuacji, gdy wydajność jest szczególnie krytyczna, np. w grach komputerowych.

Szczegóły implementacji w języku Lua zależą od wersji. Lua 5.3 i nowsze używają techniki zwanej “copy-on-write” aby zoptymalizować wydajność operacji na napisach, zmniejszając konieczność kopiowania napisów przy każdym łączeniu.

See Also (“Zobacz także”)