Menu
CoddyTech

Değişken Sayıda Parametre Alan Fonksiyonlar

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 29 / 80.

Lua'nın ... (değişken sayıda bağımsız değişken) özelliğini kullanarak herhangi bir sayıda bağımsız değişken kabul eden fonksiyonlar yazdın. Luau, değişken sayıda bağımsız değişkeni tür belirtmeni sağlar; böylece aktarılan her bağımsız değişken denetlenir:

function sum(...: number): number
    local total = 0
    for _, n in ipairs({...}) do
        total = total + n
    end
    return total
end

print(sum(1, 2))           -- 3
print(sum(1, 2, 3, 4, 5))  -- 15

...: number, fazladan gelen her bağımsız değişkenin bir sayı olması gerektiğini belirtir: sum(1, "two") bir tür hatasına yol açar. Çalışma zamanı araçları bildiklerinle aynıdır:

  • {...}, değişken sayıda bağımsız değişkeni bir dizide toplar (burada bir {number})
  • select("#", ...), kaç bağımsız değişken geldiğini sayar
  • ..., doğrudan başka bir fonksiyona aktarılabilir; örneğin math.max(...)

Lua'da olduğu gibi, ... son parametre olmalıdır: önce normal (türü belirtilmiş) parametreler gelir, değişken sayıda bağımsız değişken içeren kuyruk ise geri kalanları toplar:

function joinWords(separator: string, ...: string): string
    return table.concat({...}, separator)
end

print(joinWords("-", "a", "b", "c"))  -- a-b-c
challenge icon

Görev

Kolay

Herhangi sayıda argüman alan iki fonksiyon yaz.

  1. local function sumAll(...: number): number yazarak {...} değerlerini ipairs ile topla.
  2. local function joinWords(separator: string, ...: string): string yazarak table.concat({...}, separator) döndür.
  3. sumAll(5, 10, 15) ve joinWords("-", "apple", "banana", "cherry") yazdır.

Kodu çalıştır düğmesine bas: çıktıda 30 ve apple-banana-cherry görünür.

Kendin dene

-- 1) sumAll(...: number): number
-- 2) joinWords(separator: string, ...: string): string
-- 3) iki sonucu yazdır

Luau'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Luau derleyicisi