Sobes.tech
Junior — Middle

Swift dilinde sınıflarda nesnelerin durumunu değiştiren metodlar tanımlanabilir mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te, bir nesnenin durumunu değiştiren metodlar mutating anahtar kelimesiyle ilan edilir, ancak bu sadece yapılar ve sayımlar (değer tipleri) içindir. Sınıflar (referans tipleri) için, metodlar varsayılan olarak örneğin özelliklerini değiştirebilir, ek anahtar kelimeye gerek olmadan.

Yani:

  • Sınıflarda, mutating olmadan nesnenin durumunu değiştiren metodlar ilan edilebilir.
  • Yapılar ve sayımlar içinde, özellikleri değiştiren metodlar mutating olarak işaretlenmelidir.

Değiştiren metod içeren bir sınıf örneği:

class Counter {
    var count = 0
    func increment() {
        count += 1
    }
}

let counter = Counter()
counter.increment()
print(counter.count) // 1

mutating metod içeren yapı örneği:

struct Counter {
    var count = 0
    mutating func increment() {
        count += 1
    }
}

var counter = Counter()
counter.increment()
print(counter.count) // 1