Lua - typy danych
Lua jest językiem dynamicznie typowanym, więc zmienne nie mają typów, tylko wartości mają typy. Wartości mogą być przechowywane w zmiennych, przekazywane jako parametry i zwracane jako wyniki.
W Lua, chociaż nie mamy zmiennych typów danych, ale mamy typy dla wartości. Lista typów danych dla wartości jest podana poniżej.
| Sr.No | Typ i opis wartości |
|---|---|
| 1 | nil Służy do odróżniania wartości od posiadania pewnych danych lub braku (zerowych) danych. |
| 2 | boolean Uwzględnia true i false jako wartości. Zwykle używany do sprawdzania stanu. |
| 3 | number Reprezentuje liczby rzeczywiste (zmiennoprzecinkowe o podwójnej precyzji). |
| 4 | string Reprezentuje tablicę znaków. |
| 5 | function Reprezentuje metodę napisaną w C lub Lua. |
| 6 | userdata Reprezentuje dowolne dane C. |
| 7 | thread Reprezentuje niezależne wątki wykonania i służy do implementacji programów. |
| 8 | table Reprezentuj zwykłe tablice, tabele symboli, zbiory, rekordy, wykresy, drzewa itp. Oraz implementuje tablice asocjacyjne. Może mieć dowolną wartość (oprócz zera). |
Typ Funkcja
W Lua istnieje funkcja o nazwie „typ”, która pozwala nam poznać typ zmiennej. W poniższym kodzie podano kilka przykładów.
print(type("What is my type")) --> string
t = 10
print(type(5.8*t)) --> number
print(type(true)) --> boolean
print(type(print)) --> function
print(type(nil)) --> nil
print(type(type(ABC))) --> string
Kiedy budujesz i wykonujesz powyższy program, daje on następujący wynik w systemie Linux -
string
number
boolean
function
nil
string
Domyślnie wszystkie zmienne będą wskazywać zero, dopóki nie zostaną przypisane wartości lub nie zostaną zainicjowane. W Lua ciągi zerowe i puste są uważane za prawdziwe w przypadku sprawdzania warunków. Dlatego należy zachować ostrożność podczas korzystania z operacji boolowskich. Dowiemy się więcej na temat używania tych typów w następnych rozdziałach.