mutating Anahtar Sözcüğü
struct ve enum durumunu değiştiren yöntemler yazın.
mutating Anahtar Sözcüğü, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Yöntemler Varsayılan Olarak Değişiklik Yapamaz
Bir struct örnek yöntemi, mutating olarak işaretlenmedikçe yapının depolanan özelliklerini değiştiremez.
struct Counter {
var value = 0
mutating func increment() {
value += 1
}
}
var c = Counter()
c.increment()
print(c.value)Değişiklik Yapma Neden Gereklidir
Yapılar değer türleri olduğundan derleyici, değişikliğe açıkça izin vermenizi ve böylece değişikliğin açıkça belirtilmesini gerektirir.
struct Bank {
var balance = 0
mutating func deposit(_ amount: Int) {
balance += amount
}
}
var b = Bank()
b.deposit(50)
print(b.balance)Değişiklik Yapmayan Yöntemler
Yalnızca özellikleri okuyan bir yöntemin mutating bildirimine ihtiyacı yoktur.
struct Rectangle {
var width = 0
var height = 0
func area() -> Int {
return width * height
}
}
let r = Rectangle(width: 3, height: 4)
print(r.area())Numaralandırmada Değişiklik Yapma
Numaralandırmalar da örneği farklı bir duruma geçiren mutating yöntemlere sahip olabilir.
enum Light {
case on, off
mutating func toggle() {
self = (self == .on) ? .off : .on
}
}
var l = Light.off
l.toggle()
print(l)let Üzerinde Çağrılamaz
Bir sabit (let) örneği üzerinde mutating bir yöntemi çağıramazsınız; bunu yapmak derleme hatasına neden olur.
struct Counter {
var value = 0
mutating func bump() { value += 1 }
}
var c = Counter()
c.bump()
// let d = Counter(); d.bump() // error
print(c.value)Birden Çok Özelliği Değiştirme
Tek bir mutating yöntemi aynı anda birkaç özelliği değiştirebilir.
struct Player {
var x = 0
var y = 0
mutating func move(dx: Int, dy: Int) {
x += dx
y += dy
}
}
var p = Player()
p.move(dx: 3, dy: 5)
print(p.x, p.y)Değişiklik Yaparak Değer Döndürme
mutating bir yöntem, durumu değiştirirken aynı zamanda bir değer de döndürebilir.
struct Stack {
var items: [Int] = []
mutating func pop() -> Int? {
return items.popLast()
}
}
var s = Stack(items: [1, 2, 3])
print(s.pop() ?? -1)
print(s.items)Standart Kitaplıkta Değişiklik Yapma
Array üzerindeki append gibi yöntemler mutating özelliğindedir; bu nedenle bunları çağırmak için var dizisine ihtiyacınız vardır.
var nums = [1, 2]
nums.append(3)
print(nums)Değişiklik Yapma ve Hesaplanan Durum
Türetilmiş durumu bir değişiklik yapan yöntem içinde güncelleyerek değişmezleri tutarlı tutabilirsiniz.
struct Wallet {
var coins = 0
var label = "empty"
mutating func add(_ n: Int) {
coins += n
label = coins > 0 ? "has coins" : "empty"
}
}
var w = Wallet()
w.add(5)
print(w.coins, w.label)Sıra Önemlidir
Değişiklik yapan bir yöntemin içindeki deyimler yukarıdan aşağıya çalışır; bu nedenle sonraki satırlar önceki değişiklikleri görür.
struct Accumulator {
var total = 0
mutating func process() {
total += 1
total *= 10
}
}
var a = Accumulator()
a.process()
print(a.total)Sınıflar Değişiklik Yapma Bildirimine İhtiyaç Duymaz
Başvuru türleri (class), değer türü olmadıkları için özellikleri anahtar sözcük kullanmadan değiştirebilir.
class Box {
var value = 0
func bump() { value += 1 }
}
let box = Box()
box.bump()
print(box.value)Kısa Sınama
Değişiklik yapma anahtar sözcüğünü sınayın.
Özet
Bir yapı veya numaralandırma örneği yöntemi, saklanan özellikleri değiştirdiğinde (numaralandırmalar için durumu değiştirdiğinde) mutating olarak işaretleyin. Bu tür yöntemler let örnekleri üzerinde çağrılamaz. Başvuru türleri olan sınıflar buna hiçbir zaman ihtiyaç duymaz.
struct C { var v = 0; mutating func inc() { v += 1 } }
var c = C()
c.inc()
print(c.v)Yapay zeka eğitmeniyle Swift öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 122
- Dersler
- 409
Sıkça Sorulan Sorular
“mutating Anahtar Sözcüğü” dersi ücretsiz mi?
Evet — “mutating Anahtar Sözcüğü” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“mutating Anahtar Sözcüğü” dersinde ne öğreneceğim?
struct ve enum durumunu değiştiren yöntemler yazın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“mutating Anahtar Sözcüğü” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Değer Türleri ve Değişmezlik
- mutating Anahtar Sözcüğü
- Mutating ve self Yeniden Ataması
- Değiştirmeyen Alternatifler