LS2010
VIP

Wiek: 17 Dołączył: 10 Wrz 2009 Posty: 370 Piwa: 207/5 Skąd: Manchester
|
Wysłany: 2009-11-03, 19:51 Pisanie Skryptów LUA 4.1. Czym jest zmienna
|
|
|
IV. Zmienne
4.1. Czym jest zmienna
Zmienna to wydzielony obszar w pamięci komputera dla jakiejś danej. My decydujemy jaką zmienną stworzyć, jaką nadać jej wartość, kiedy się nią posłużyć, komputer za nas podejmuje decyzję gdzie i jak zaalokować pamięć dla danej. Tak więc posługiwanie się zmiennymi jest proste i przydatne wszędzie tam gdzie chcemy zapisać coś w pamięci by następnie się tym posłużyć.
4.2. Tworzymy zmienną
Żeby zapisać coś, np. tekst albo liczbę i później z tego korzystać musimy stworzyć sobie zmienną. W Lua to bardzo proste:
zmienna = "Jakiś tekst";
No i jest pierwsza zmienna którą zapamiętał nasz komputer Wystarczy podać nazwę zmiennej, a następnie za pomocą znaku = przypisać jej jakąś wartość.
Możemy też posługiwać się też innymi typami zmiennych:
liczba = 156;
liczba2 = 123.6754;
prawda = true; -- Typ boolean
4.3. Typy zmiennych
4.3.1. String
Jest to ciąg znaków - czyli inaczej tekst. Z tym typem zapoznaliśmy się wcześniej, więc w celu przypomnienia przykładowa zmienna typu string wygląda tak:
zmienna = "Tekst";
4.3.2. Number
Jest to zwykła liczba. Przykłady zmiennych:
dodatnia = 9;
ujemna = -9;
zmiennoprzecinkowa = 123.321;
4.3.3. Boolean
Inaczej typ logiczny. Może przyjąć dwie wartości: true (prawda) i false (fałsz).
Przykład:
prawda = true;
falsz = false;
4.3.4. nil
Jest to po prostu brak wartości. Np.
nic = nil;
W ten sposób możemy stworzyć zmienną która na samym początku nie przyjmuje z góry określonej wartości.
4.3.5. Inne
Istnieje jeszcze kilka innych zmiennych o których teraz sobie nie powiemy, bo nie jest jeszcze na to pora.
4.4. Nazewnictwo zmiennych
Poprawna nazwa zmiennej zaczyna się od litery. Po niej mogą występować zarówno litery (bez polskich: ę, ą, ś, ć itp) jak i cyfry a także znak podkreślenia( _ ). Należy o tym pamiętać gdyż niepoprawne nazwanie zmiennej może przysporzyć wiele błędów. Oto niektóre poprawne nazwy:
nazwa Nazwa nazwa3 nazwa_4 NaZwA
Dziwne wydawać się może że takiej zmiennej nie utworzymy:
while = 9;
Użyliśmy zarezerwowanego słowa, którego nie możemy użyć do nadawania nazw zmiennym. Oto wszystkie zarezerwowane słowa:
and break do else elseif
end false for function if
in local nil not or
repeat return then true until
while
Nie musisz zapamiętywać wszystkich tych nazw gdyż zostaną one wyróżnione w edytorze(np. w notepad++).
4.5. Odwoływanie się do zmiennych
Do zmiennej odwołujemy się po jej nazwie. Dzięki temu możemy posłużyć się wartością zmiennej - np. w print.
function main()
tekst = "Jakiś tekst";
print(tekst);
end
Najpierw tworzymy zmienną, a potem się nią posługujemy. Proste!
Zapamiętaj
Lua odróżnia wielkość znaków, tak więc:
nazwa
i
Nazwa
to dwie różne zmienne!
4.6. Łączenie zmiennych
Lua dostarcza nam pewien mechanizm bez którego odwołanie się do dwóch (i więcej zmiennych) wyglądałoby tak:
function main()
a = "jeden to";
b = 1;
print(a);
print(b);
end
Jest to dla nas męczące bo za każdym razem musimy użyć funkcji print. Czym jest wspomniany prze ze mnie mechanizm? Pozwala na użycie kilku zmiennych jako jednej całości dzięki czemu powyższy skrypt możemy skrócić do takiej postaci:
function main()
a = "jeden to";
b = 1;
print(a .. b);
end
Oczywiste jest że możemy użyć tyle zmiennych ile potrzebujemy np.
function main()
a = "jeden to";
b = 1;
c = "a dwa to";
d = 2;
print(a .. b .. c .. d);
end
Nie musimy wcale używać w tym przypadku zmiennych, wystarczy:
function main()
print("jeden to:" .. 1 .. "a dwa to" .. 2);
end
Po prostu łączymy różne wartości w jedną całość.
4.7. Dla chętnych
4.7.1 Nazewnictwo zmiennych i zarezerwowane słowa
Lua odróżnia wielkość znaków. Skoro nie możemy utworzyć takiej zmiennej:
while = 9;
To rozwiązaniem problemu będzie:
While = 9;
Taki zapis jest jak najbardziej poprawny.
4.7.2. Typy zmiennych
1) Chcąc sprawdzić jakiego typu jest dana zmienna można posłużyć się funkcją type. Przykład:
prawda = true;
print( type( prawda ) ) --> boolean
print( type( 12.9 + 2) ) --> number
print( type( print ) ) --> function
print( type( nil ) ) --> nil
2) Odwołanie się do nie utworzonej zmiennej zwróci nil. Przykład:
print( type (nieUtworzonaZmienna) ); --> nil
3) Zmienne w Lua nie są silnie typizowane. Jeśli stworzymy zmienną typu np. string to następnie możemy jej przypisać wartość dowolnego typu. Przykład:
zmienna = "tekst";
zmienna = 1; -- poprawne
4) Lua dostarcza nam funkcje służące do konwersji typów danych. Są to funkcje tonumber oraz tostring. Pierwsza z nich przyjmuje jako pierwszy argument zmienną 'dowolnego' typu a następnie zwraca zmienną typu number. Podobnie druga, z tym że zwraca wartość typu string.
4.7.3. Łączenie zmiennych
Operator .. łączy zmienne typu string. Wszystkie łączone przez ten operator liczby są konwertowane do typu string. Przykład:
function main()
a = 1;
print( type( a ) ); --> number
a = 1 .. 5;
print( type( a ) ); --> string
end |
|
|