Menu
Coddy logo textTech

Fonksiyonlu Tablolar

Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 1 / 70.

Lua'da tablolar inanılmaz derecede çok yönlüdür. Veri depolamanın ötesinde, fonksiyonları da tutabilirler. Bu, ilgili işlemleri bir araya getirmenize olanak tanıyarak kodunuzun düzenli ve yönetilmesinin kolay kalmasını sağlar.

Bir fonksiyonu bir tablonun içine yerleştirmek için, onu tıpkı diğer herhangi bir değer gibi bir anahtara atamanız yeterlidir:

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- Çıktı: Hello, Alice

Fonksiyonu ayrıca tanımlayabilir ve ardından tabloya ekleyebilirsiniz:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

Veya bu daha temiz kısa yazım sözdizimini kullanın:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

Her üç yaklaşım da aynı sonucu üretir. Fonksiyonu nokta notasyonunu kullanarak çağırırsınız: myTable.greet("Alice"). Fonksiyonları verilerle paketleyen bu kalıp, Lua'da nesne yönelimli programlamanın temelidir.

challenge icon

Görev

Kolay

Dört aritmetik fonksiyon içeren calculator adında bir tablo oluşturun:

  • add(a, b) - a ve b toplamını döndürür
  • subtract(a, b) - a eksi b sonucunu döndürür
  • multiply(a, b) - a ve b çarpımını döndürür
  • divide(a, b) - a bölü b sonucunu döndürür

Üç girdi alacaksınız:

  1. Bir işlem adı (şunlardan biri: add, subtract, multiply, divide)
  2. Birinci sayı
  3. İkinci sayı

İşlem adına göre calculator tablonuzdan uygun fonksiyonu çağırın ve sonucu yazdırın.

Kopya kağıdı

Lua'da tablolar, verilerin yanı sıra fonksiyonları da saklayabilir. Bir tabloya fonksiyon eklemek için onu bir anahtara atayın:

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- Çıktı: Hello, Alice

Fonksiyonları ayrıca tanımlayıp tabloya da ekleyebilirsiniz:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

Veya kısa yazım sözdizimini kullanın:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

Tablo fonksiyonlarını nokta notasyonu kullanarak çağırın: myTable.greet("Alice")

Kendin dene

-- Girdileri oku
local operation = io.read()
local num1 = tonumber(io.read())
local num2 = tonumber(io.read())

-- YAPILACAK: Dört fonksiyonlu bir hesap makinesi tablosu oluşturun:
-- add(a, b), subtract(a, b), multiply(a, b), divide(a, b)


-- YAPILACAK: İşlem adını kullanarak hesap makinesi tablosundan uygun fonksiyonu çağırın
-- ve sonucu yazdırın
quiz iconKendini test et

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

Object Oriented Programming bölümündeki tüm dersler