Zmienne
WunM
Zmienne
Zmienne w Lua są dynamicznie typowane, oznacza to że mogą być różnego typu, którego nie trzeba go jawnie podawać. Po za tym można przypisać do zmiennej wartość innego typu niż tego którym została zadeklarowana. W takim przypadku nie jest wykonywane rzutowanie, lecz zmienia się, poza wartością, typ zmiennej.
Identyfikatory
Każda zmienna posiada identyfikator (nazwę) po którym odnosimy się do niej. Identyfikatory w lua składają się ze znaków alfanumerycznych, ale nie mogą zawierać polskich znaków.
Poprawny identyfikator zaczyna się znakiem (nie będącym liczbą), po nim może wystąpić dowolny znak alfanumeryczny (oraz znak podkreślenia '_').
Identyfikator może rozpoczynać się znakiem podkreślenia jednak nie jest to wskazane. W taki sposób utworzone zostały zmienne specjalne (np. _VERSION). W celu uniknięcia konfliktu nazw (nadpisania zmiennych specjalnych) dobrym zwyczajem jest nie rozpoczynać identyfikatorów od znaku podkreślenia.
Typy zmiennych
Oto podstawowe typy zmiennych w lua:
nil
Jest to wartość które oznacza 'nic'. Pełni podobną rolę jak np. null czy none w innych językach. Zazwyczaj używa się tej wartości do inicjalizowania pustych zmiennych (które nie mają określonej początkowej wartości) lub usuwania zmiennych globalnych.
boolean
Jest to wartość logiczna mogąca przyjmować dwa stany: true (prawda) lub false (fałsz).
number
Jest to wartość liczbowa mogąca (w przeciwieństwie do innych języków) być zarówno całkowita jak i zmiennoprzecinkowa.
string
Jest to ciąg znaków. Może być umieszczony pomiędzy ' a ' lub pomiędzy " a ". Przykład:
'tekst'
"tekst"
"cytat: 'Czytanie jest....'"
tablice
Jest to (na ogół uporządkowany) zbiór zmiennych (mogących być tego samego lub różnego typu). Elementy tablicy umieszcza się w nawiasach klamrowych:
{}
Dostęp do danego elementu uzyskujemy poprzez podanie indeksu w nawiasach kwadratowych:
[]
Domyślnie pierwszy element w tablicy ma indeks oznaczony numerem 1. Można zmienić indeks danego elementu poprzez przypisując mu go w nawiasach kwadratowych, np:
tab = { [0] = 1 }
Kolejne elementy będą miały (o ile indeks jest wartością liczbową) indeksy większe o 1.
Indeks może być dowolnego typu, np. string:
tab = { ["name"] = 11}
Dostęp uzyskujemy poprzez podanie odpowiedniej wartości:
tab["name"]
Jeżeli odniesiemy się do indeksu który nie istnieje zostanie zwrócona wartość nil.
function
W lua funkcja również jest typem. Przykład:
function foo() end
bar = foo
Zobacz: Funkcje
Tworzenie zmiennych
Każda nowo tworzona zmienna musi posiadać identyfikator i wartość. Przykład:
zmienna = 1
W przypadku gdy nie chcemy podawać określonej wartości, można posłużyć się wartością nil, która oznacza 'nic'.
Sprawdzanie typu zmiennej
W celu sprawdzenia jakiego typu jest zmienna można posłużyć się funkcją type:
liczba = 1
znaki = "znaczki"
tablica = {1,2,3,4}
nieprawda = false
nic = nil
type(liczba) --> number
type(znaki) --> string
type(tablica) --> table
type(nieprawda) --> boolean
type(nic) --> nil