Menu
Coddy logo textTech

Tablice generyczne

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

Typy generyczne stają się naprawdę przydatne, gdy pojawiają się tablice. Już teraz zapisujesz tablice typowane jako {number} lub {string}. W funkcji generycznej typ elementu może być po prostu T, a {T} oznacza „tablicę dowolnego typu, którym okaże się T”.

Oto klasyczny przykład: pobieranie pierwszego elementu dowolnej tablicy:

local function first<T>(items: {T}): T?
    return items[1]
end

Przekaż {string}, a weryfikator typów wywnioskuje T = string, więc wynikiem będzie ciąg znaków. Przekaż {number}, a wynikiem będzie liczba. Jedna funkcja zastępuje całą rodzinę kopii dla poszczególnych typów.

Zwróć uwagę na typ zwracany: to T?, a nie T. Tablica może być pusta, a wtedy items[1] ma wartość nil: poznany wcześniej typ opcjonalny uczciwie to sygnalizuje: „T albo nil”. Weryfikator typów podpowie wywołującym, by obsłużyli przypadek nil przed użyciem wyniku — właśnie tego rodzaju błędy chcesz wykrywać za pomocą języka typowanego.

challenge icon

Wyzwanie

Łatwy

Utwórz funkcję generyczną o nazwie first, która:

  • deklaruje parametr typu T
  • przyjmuje jeden parametr o nazwie items typu {T}
  • zwraca pierwszy element, z typem zwracanym T? (dla pustej tablicy jest to nil)

Utwórz następujące tablice o określonych typach:

  • fruits typu {string} z elementami "apple", "banana", "cherry"
  • scores typu {number} z elementami 10, 20, 30, 40
  • flags typu {boolean} z elementami false, true
  • empty typu {string}, bez elementów

Wypisz wynik wywołania first dla każdej tablicy, w tej kolejności, każdy w osobnym wierszu.

Spróbuj swoich sił

-- Napisz kod tutaj
-- 1) zdefiniuj first<T>(items: {T}): T?, zwracającą items[1]
-- 2) utwórz fruits: {string}, scores: {number}, flags: {boolean},
--    oraz pustą tablicę {string}
-- 3) wypisz first(...) dla każdej tablicy, w tej kolejności
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