Menu
Coddy logo textTech

Self ve İki Nokta Metotları

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası — ders 43 / 73.

rect.area(rect) yazmak çalışır, ancak Lua OOP dersinde daha iyi bir yol öğrenmiştiniz: colon (iki nokta üst üste). rect:area() tam olarak aynı çağrıdır — Lua, colon işaretinden önceki table değerini ilk bağımsız değişken olan self olarak automatically geçirir.

Colon işareti, define aşamasında da yardımcı olur. function account:deposit(amount), sizin için self adında gizli bir ilk parametre bildirir:

type Account = {
    owner: string,
    balance: number,
    deposit: (self: Account, amount: number) -> (),
    getBalance: (self: Account) -> number,
}

local account = {owner = "Maya", balance = 1500}

function account:deposit(amount: number)
    self.balance += amount -- self örtüktür
end

function account:getBalance(): number
    return self.balance
end

Şeklin (shape) self parametresini explicitlydeposit: (self: Account, amount: number) -> () — bildirdiğine dikkat edin; colon işareti bunu uygulamada gizlese bile. Colon bir sözdizimi şekeridir; parametre hâlâ oradadır ve type bunu açıkça belirtir. Hiçbir şey döndürmeyen bir methods, boş dönüş değeri olan -> () ile tiplendirilir.

Çağırma işlemi zaten bildiğiniz kuralla aynıdır: account:deposit(250) ifadesi account.deposit(account, 250) ile birebir aynıdır (same). OOP bölümünüzdeki ile aynı çalışma zamanı davranışı — Luau sadece üstüne tipleri ekler.

challenge icon

Görev

Kolay

Aşağıdaki özelliklere sahip Account adında bir type tür takma adı (type alias) oluşturun:

  • string türünde owner
  • number türünde balance
  • deposit(self: Account, amount: number) -> ()
  • getBalance(self: Account) -> number

Owner değeri "Maya" ve balance değeri 1500 olan bir account tablosu (table) oluşturun, ardından colon definition sözdizimini (syntax) kullanarak her iki metodu da ekleyin (function account:deposit(amount: number) …). deposit, bakiye bilgisine amount miktarını ekler; getBalance ise güncel bakiyeyi return eder.

Colon calls kullanarak:

  1. bakiyeyi print edin
  2. 250 miktarında deposit yapın
  3. bakiyeyi again (tekrar) print edin
  4. owner değerini print edin

Kendin dene

-- Buraya kod yazın
-- 1) Account tipini tanımla (metodlar tipte self'i açıkça alır)
-- 2) account tablosunu oluştur, sonra deposit/getBalance'ı iki nokta üst üste sözdizimiyle ekle
-- 3) bakiyeyi yazdır, 250 yatır, bakiyeyi tekrar yazdır, sahibi yazdır
quiz iconKendini test et

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