Değişken Sayıda Parametre Alan Fonksiyonlar (Variadic)
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 27 / 73.
Herhangi bir sayıda bağımsız değişken kabul eden işlevler yazmak için Lua'nın ... (değişken sayıda bağımsız değişken) özelliğini kullandın. Luau, değişken sayıdaki bağımsız değişkenleri türlendirmeni 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, her ek bağımsız değişkenin bir sayı olması gerektiğini bildirir: sum(1, "two") bir tür hatasına dönüşür. Çalışma zamanı araçları, bildiklerinle aynıdır:
{...}, değişken sayıdaki bağımsız değişkenleri bir dizi içinde toplar (burada bir{number})select("#", ...), kaç bağımsız değişken geldiğini sayar..., başka bir işleve doğrudan aktarılabilir; örneğinmath.max(...)
Lua'da olduğu gibi ... son parametre olmalıdır: normal (türlü) parametreler önce gelir, değişken sayıda bağımsız değişken alan kuyruk geri kalanları toplar:
function joinWords(separator: string, ...: string): string
return table.concat({...}, separator)
end
print(joinWords("-", "a", "b", "c")) -- a-b-cGörev
KolayHerhangi sayıda number bağımsız değişken alan ve bunların toplamını number olarak döndüren sumAll adlı bir işlev oluşturun (...: number).
Herhangi sayıda string bağımsız değişken alan ve kaç tanesinin aktarıldığını belirten, number türünde bir değer döndüren countValues adlı bir işlev oluşturun: select("#", ...) kullanın.
Önce gerekli bir separator: string, ardından herhangi sayıda string bağımsız değişken alan ve bunları ayırıcıyla birleştirerek döndüren joinWords adlı bir işlev oluşturun ({...} üzerinde table.concat kullanın): dönüş türü string olmalıdır.
Her birini kendi satırında çağırıp yazdırın:
sumAll(5, 10, 15)sumAll(1, 2, 3, 4, 5)countValues("a", "b", "c", "d")joinWords("-", "apple", "banana", "cherry")joinWords(" | ", "red", "green", "blue")
Kendin dene
-- Buraya kod yazın
-- sumAll(...: number): number -- {...} üzerinde döngü
-- countValues(...: string): number -- select("#", ...)
-- joinWords(separator: string, ...: string): string
-- sonra beş sonucu yazdır
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Luau'ya Giriş bölümündeki tüm dersler
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışmak
Parametreleri ve Geri Dönüş Değerlerini TiplendirmeAnonim Fonksiyonları TiplendirmeHiçbir Şey Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriDeğişken Sayıda Parametre Alan Fonksiyonlar (Variadic)Fonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar2Temel Tipler
Temel Tipler: num, str, bool'any' Tipi: Kaçış Yolu'unknown' TipiNil ve İsteğe Bağlı (Optional) TiplerUygulamada Tip ÇıkarımıAçık Tip BelirteçleriÖzet: Temel Tipler Pratiği5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Tipli Tablolar: Diziler ve Map'ler
Tipli DizilerEleman Ekleme ve OkumaMap Tipi Nedir?Map Bildirimi ve Map'lere ErişimTablolar Üzerinde YinelemeKarma Biçimli TablolarÇok Boyutlu Tipli Dizilertable.unpack ve VarargsÖzet: Diziler ve Map'lerKendi başına pratik yap: Online Lua derleyicisi