Změna prvků
Prvek seznamu se chová jako proměnná: pomocí = mu můžete dát novou hodnotu. Vlevo napíšete název seznamu a index v hranatých závorkách, stejně jako když prvek čtete:
local zahony = {"mrkev", "brambory", "dýně"}
zahony[2] = "rajčata"
print(zahony[1], zahony[2], zahony[3])Vypíše:
mrkev rajčata dýněDruhý prvek je teď "rajčata" a původní "brambory" zmizely. Ostatní prvky zůstaly, jak byly. Čísla v seznamu se mění stejně. Lua nemá +=, takže prvek napíšete na obě strany:
local vejce = {4, 6, 5}
vejce[3] = vejce[3] + 2
print(vejce[3])Vypíše:
7Nepište == místo =. zahony[2] == "rajčata" je porovnání, ne příkaz, a na samostatném řádku skončí chybou syntax error near '=='.
Přidání prvku na konec. Místo hned za posledním prvkem má index #zahony + 1. Když tam přiřadíte hodnotu, seznam se o jeden prvek prodlouží:
local zahony = {"mrkev", "brambory"}
zahony[#zahony + 1] = "pšenice"
zahony[#zahony + 1] = "kukuřice"
print(#zahony, zahony[3], zahony[4])Vypíše:
4 pšenice kukuřicePo prvním přiřazení má seznam tři prvky, takže druhé přiřazení uloží "kukuřice" na index 4. Takhle můžete naplnit i seznam, který začíná prázdný: local sklizen = {} a potom sklizen[#sklizen + 1] = …, kolikrát potřebujete.
Nenechávejte díry. Seznam má mít prvky na indexech 1, 2, 3… bez mezer. Když přiřadíte prvek dál než na #zahony + 1, nebo když prvek uprostřed nastavíte na nil, vznikne v seznamu díra a na # už se nedá spolehnout:
local plodiny = {"mrkev", "brambory", "dýně", "pšenice"}
plodiny[2] = nil
print(#plodiny)
local dalsi = {"mrkev", "brambory", "dýně"}
dalsi[5] = "kukuřice"
print(#dalsi)Vypíše:
4
3V prvním seznamu zůstaly jen tři plodiny, ale # tvrdí 4. Ve druhém jsou čtyři, ale # tvrdí 3: "kukuřice" vůbec nevidí. Když má seznam díru, # může počítat po díru, nebo i za ni, a Lua neslibuje, co z toho udělá. Proto přidávejte prvky jen na #t + 1 a odebírejte je tak, jak ukáže další cvičení.
Jak psát:
Pokyny
Brambory jsou sklizené a Ema na jejich místo zasadila rajčata. Pod print změňte druhý prvek seznamu zahony na "rajčata".
Ema vykopala nový záhon pro pšenici. Přidejte "pšenice" na konec seznamu, na index #zahony + 1.
Na konci programu vypište počet záhonů, druhý záhon a poslední záhon, každý na samostatný řádek. Poslední získejte pomocí #zahony:
Záhony: 4
Druhý: rajčata
Poslední: pšeniceZačněte programovat zdarma
3/11