Menu
Coddy logo textTech

Birinci Sınıf Değer Olarak Fonksiyonlar

Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 12 / 54.

Lua'da fonksiyonlar, yalnızca görevleri yerine getiren kod bloklarından daha fazlasıdır; herhangi bir veri türü gibi değerlendirilebilen değerlerdir. Bu, fonksiyonlarla tıpkı sayılar, dizeler veya tablolarla çalıştığınız şekilde çalışabileceğiniz anlamına gelir.

Bir fonksiyonu bir değişkende saklayabilirsiniz:

local greet = function()
    print("Hello!")
end

greet()  -- Çıktı: Hello!

Burada, fonksiyon greet değişkenine atanır ve onu tıpkı normal bir fonksiyon gibi çağırabilirsiniz. Bu, kodunuzu nasıl yapılandıracağınız konusunda güçlü olanaklar sunar.

Fonksiyonlar diğer fonksiyonlara argüman olarak da aktarılabilir. Bu, bir fonksiyonun başka bir fonksiyonda tanımlanan davranışı kullanmasını istediğinizde özellikle yararlıdır:

function executeAction(action)
    action()
end

local sayHello = function()
    print("Hello from a function!")
end

executeAction(sayHello)  -- Çıktı: Hello from a function!

Bu örnekte, executeAction bir fonksiyonu parametre olarak alır ve onu çağırır. sayHello fonksiyonu, tıpkı bir sayı veya dize geçirir gibi geçirilir.

Fonksiyonlar başka fonksiyonlar bile döndürebilir. Bu, belirli koşullara veya parametrelere bağlı olarak dinamik olarak fonksiyonlar oluşturmanıza olanak tanır:

function createMultiplier(factor)
    return function(number)
        return number * factor
    end
end

local double = createMultiplier(2)
print(double(5))  -- Çıktı: 10
challenge icon

Görev

Kolay

a, b ve operation parametrelerini alan ve bu iki sayıya işlem fonksiyonunu uygulamanın sonucunu döndüren bir applyOperation fonksiyonu yazın.

operation parametresi, a ve b argümanları ile çağrılacak bir fonksiyon içeren bir tablodur.

Mantık:

  • "func" anahtarını kullanarak operation tablosundan fonksiyonu çıkarın
  • Bu fonksiyonu a ve b argümanları ile çağırın
  • Sonucu döndürün

Parametreler:

  • a (sayı): Birinci sayı
  • b (sayı): İkinci sayı
  • operation (tablo): "func" anahtarında saklanan bir fonksiyon içeren tablo

Döndürdüğü Değer: İşlem fonksiyonunun a ve b ile çağrılmasının sonucu (sayı)

Kopya kağıdı

Lua'da fonksiyonlar; değişkenlerde saklanabilen, argüman olarak aktarılabilen ve diğer fonksiyonlardan döndürülebilen birinci sınıf değerlerdir.

Bir fonksiyonu bir değişkende saklayın:

local greet = function()
    print("Hello!")
end

greet()  -- Çıktı: Hello!

Bir fonksiyonu argüman olarak aktarın:

function executeAction(action)
    action()
end

local sayHello = function()
    print("Hello from a function!")
end

executeAction(sayHello)  -- Çıktı: Hello from a function!

Bir fonksiyonu başka bir fonksiyondan döndürün:

function createMultiplier(factor)
    return function(number)
        return number * factor
    end
end

local double = createMultiplier(2)
print(double(5))  -- Çıktı: 10

Kendin dene

function applyOperation(a, b, operation)
    -- Kodunuzu buraya yazın
end
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler