Menu
Coddy logo textTech

Birinci Sınıf Değer Olarak Fonksiyonlar

Coddy'nin Lua Journey'sinin Mantık ve Akış 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ı)

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.

Mantık ve Akış bölümündeki tüm dersler