Menu
Coddy logo textTech

Adnotacje kształtów w miejscu

Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 37 z 73.

W Lua od dawna używasz tabel jako rekordów: local user = {name = "Ana", age = 20}. Nic nie powstrzymuje cię przed błędnym zapisaniem pola, pominięciem go albo zapisaniem ciągu znaków tam, gdzie powinna być liczba. Dowiadujesz się o tym dopiero podczas działania kodu.

Luau pozwala opisać kształt takiej tabeli bezpośrednio w deklaracji, wymieniając każde pole i jego typ w nawiasach klamrowych:

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

Porównaj to ze znanymi ci już typami tabel: {number} opisuje tablicę, a {[string]: number} opisuje mapę z dowolnymi kluczami typu string. Kształt jest bardziej precyzyjny. Wymienia każde pole osobno i określa jego własny typ.

Po zadeklarowaniu kształtu sprawdzanie typów weryfikuje zgodność tabeli z nim podczas edycji. Brakujące pole lub nieprawidłowy typ wartości zostanie wskazany, zanim kod w ogóle zostanie uruchomiony:

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ błąd typu: string nie jest liczbą
}

Jak zawsze, adnotacja nie wpływa na działanie programu: tabela pozostaje zwykłą tabelą Lua. Kształty inline świetnie nadają się do jednorazowych struktur, których nie planujesz używać ponownie; w następnej lekcji nadasz kształtom nazwę.

challenge icon

Wyzwanie

Łatwy

Utwórz zmienną o nazwie student z wbudowaną adnotacją kształtu deklarującą:

  • name typu string
  • studentId typu number
  • isEnrolled typu boolean

Zainicjuj ją imieniem "Sarah Johnson", studentId 12345 i isEnrolled true.

Utwórz drugą zmienną o nazwie course z wbudowaną adnotacją kształtu deklarującą:

  • title typu string
  • credits typu number
  • instructor typu string

Zainicjuj ją tytułem "Introduction to Luau", liczbą punktów 3 i prowadzącym "Dr. Smith".

Wypisz, każdy element w osobnym wierszu:

  1. imię i nazwisko studenta
  2. identyfikator studenta
  3. tytuł kursu
  4. liczbę punktów

Spróbuj swoich sił

-- Napisz kod tutaj
-- 1) zadeklaruj student z adnotacją typu strukturalnego bezpośrednio w deklaracji
-- 2) zadeklaruj course z adnotacją typu strukturalnego bezpośrednio w deklaracji
-- 3) wypisz cztery wymagane pola
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wprowadzenie do Luau

Poćwicz samodzielnie: Kompilator Luau online