A zmienna to nazwa, która przechowuje wartość. Wartości zmiennych mogą być liczbami, łańcuchami, wartościami logicznymi, typami danych i innymi.
Nazwy zmiennych
Nazwy zmiennych mogą być dowolnym niezastrzeżonym ciągiem liter, cyfr i podkreśleń, który nie zaczyna się od cyfry.
LETTERS -- poprawne
a1 -- poprawne
var_name -- poprawne
_test -- poprawne
if -- NIEpoprawne
25th -- NIEpoprawneNazwy zmiennych są wrażliwe na wielkość liter, więc TestVar i TESTVAR to różne nazwy. Unikaj nadawania zmiennym nazw z podkreśleniem i wszystkimi wielkimi literami, takich jak _VERSION, ponieważ Luau może zarezerwować je dla wewnętrznych zmiennych globalnych.
Najlepsze praktyki
Najlepiej jest pisać słowa w całości. Skróty zazwyczaj ułatwiają pisanie kodu, ale utrudniają jego czytanie. Przestrzeganie powszechnych praktyk nazewnictwa podczas nadawania zmiennym nazw może pomóc Tobie i innym zrozumieć ich znaczenie lub cel:
- Używaj nazw w PascalCase dla obiektów podobnych do klas i enumów.
- Używaj nazw w PascalCase dla wszystkich API Roblox. API w camelCase są w większości przestarzałe.
- Używaj nazw w camelCase dla zmiennych lokalnych, wartości członkowskich i funkcji.
- Nie kapitalizuj całych akronimów w nazwach. Na przykład, napisz aJsonVariable lub MakeHttpCall.
Zastrzeżone nazwy
Luau rezerwuje następujące słowa kluczowe, więc nie możesz ich używać do nazywania zmiennych lub funkcji:
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
Przypisywanie wartości
Aby utworzyć zmienną i przypisać jej wartość, użyj operatora =. Umieść zmienną po lewej stronie = a wartość po prawej. Jeśli nie podasz wartości, wartość to nil.
Zmienna może mieć globalny lub lokalny zakres. Domyślnie mają zakres globalny, ale prawie zawsze lepiej jest tworzyć je z zakresem lokalnym, ponieważ Luau szybciej uzyskuje dostęp do zmiennych lokalnych niż globalnych. Aby nadać zmiennej lokalny zakres, umieść słowo kluczowe local przed nazwą zmiennej, gdy przypisujesz jej wartość. Aby nadać jej lokalny zakres i jednocześnie zapobiec ponownemu przypisaniu, użyj const zamiast local. Aby uzyskać więcej informacji, zobacz Zakres.
local nilVar
local x = 10
local word = "Hello"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Hello
print(boolean) -- truePrzypisywanie wartości do wielu zmiennych
Możesz przypisać wartości do wielu zmiennych w jednej linii, oddzielając każdą parę zmienna-wartość przecinkiem. Jeśli masz więcej zmiennych niż wartości, Luau przypisuje nil do dodatkowych zmiennych. Jeśli masz więcej wartości niż zmiennych, Luau nie przypisuje dodatkowych wartości do żadnych zmiennych.
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- dodatkowa zmienna
local g, h = 7, 8, 9 -- dodatkowa wartość
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8Zmiana wartości
Aby zmienić wartość zmiennej, przypisz jej inną wartość.
local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000Zmienne const
Aby utworzyć zmienną, której nie możesz ponownie przypisać, użyj const zamiast local. Próba ponownego przypisania zmiennej const powoduje błąd, w tym przez operator przypisania złożonego taki jak +=.
const MAX_HEALTH = 100
MAX_HEALTH = 50 -- błąd: nie można ponownie przypisać zmiennej const
MAX_HEALTH += 1 -- błąd: nie można ponownie przypisać zmiennej constPodobnie jak local, const akceptuje adnotację typu, taką jak const MAX_HEALTH: number = 100.
Możesz również zadeklarować funkcję z const, co zapobiega ponownemu przypisaniu nazwy funkcji.
const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- błąd: nie można ponownie przypisać zmiennej constconst sprawia, że zmienna sama w sobie jest niemutowalna, a nie wartość, którą przechowuje. Jeśli zmienna const przechowuje tabelę, nadal możesz zmieniać zawartość tabeli. Aby również uczynić zawartość niemutowalną, użyj table.freeze().
const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- ok, zmienia wartość wewnątrz tabeli
SETTINGS = {} -- błąd: nie można ponownie przypisać zmiennej constW przeciwieństwie do słów kluczowych w Zastrzeżonych nazwach, const jest kontekstowe. Luau traktuje to jako słowo kluczowe tylko tam, gdzie local jest ważne, więc istniejący kod, który używa const jako nazwy zmiennej, nadal działa.
local const = 1
print(const) -- 1
const = 2 -- ok, `const` jest tutaj nazwą zmiennejAby uzyskać więcej informacji i przypadków brzegowych, zobacz dokumentację Luau.