Kavramlar - Değişken Argüman Sayısı (varargs)

Değişken Argümanlı Fonksiyonlar

Değişken sayıda argüman alan fonksiyonlara variadic (değişken argümanlı) denir.


Örnek

print fonksiyonu, kendisine verdiğiniz herhangi bir sayıdaki değeri konsola yazar.

print( 'Bunlar' , 'bir' , 'sürü' , 'argüman' , 1 , 2 , 3 )


Bildirim

Değişken argümanlar, bir fonksiyonun argüman listesinin sonuna
... adı ile bildirilebilir.

function ( ilk , ikinci , ... )

Fonksiyonu ( 1 , 2 , 3 , 4 ) ile çağırmak şu sonuçları verir:

  • ilk = 1
  • ikinci = 2
  • ... = 3 , 4


Kullanım

...'yı başka bir fonksiyona argüman olarak sağlayabilirsiniz.

sum( 1 , 2 , ... , 5 ) -- sum( 1 , 2 , 3 , 4 , 5 ) ile aynı


Çıkarma (Unpacking)

Ayrıca bir tabloyu çıkararak (unpacking) da değişken argümanlar oluşturabilirsiniz.

unpack({ 3 , 4 }) -- `3 , 4` ile aynı


Paketleme (Packing)

Tersi, bir tabloyu paketleyerek (packing) elde edilebilir.

local arguments = table.Pack( ... ) -- { 3 , 4 } ile aynı
local arguments = { ... } -- Kısayol Sözdizimi




Örnek: Toplama

Değişken sayıdaki değeri toplar.

Kod

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

Test

print(sum(1,2,3))
Çıktı: 6




Örnek: Ortalama

Önceki örneğin toplama fonksiyonunu kullanarak
değişken sayıdaki değerin ortalamasını bulur.

Fonksiyon

function average ( ... ) return sum( ... ) / #{ ... } end

Test

print(average(1,2,3))
Çıktı: 2.0

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord