Kata Kunci mutating
Tuliskan metode yang mengubah keadaan struct dan enum.
Kata Kunci mutating adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.
Metode Tidak Dapat Bermutasi Secara Bawaan
Metode instans dari struct tidak dapat mengubah properti tersimpan milik struktur kecuali metode tersebut ditandai mutating.
struct Counter {
var value = 0
mutating func increment() {
value += 1
}
}
var c = Counter()
c.increment()
print(c.value)Mengapa Mutasi Diperlukan
Karena struct merupakan tipe nilai, compiler mengharuskan Anda menyatakan bahwa mutasi diizinkan agar perubahan tersebut terlihat secara eksplisit.
struct Bank {
var balance = 0
mutating func deposit(_ amount: Int) {
balance += amount
}
}
var b = Bank()
b.deposit(50)
print(b.balance)Metode Tanpa Mutasi
Metode yang hanya membaca properti tidak memerlukan mutating.
struct Rectangle {
var width = 0
var height = 0
func area() -> Int {
return width * height
}
}
let r = Rectangle(width: 3, height: 4)
print(r.area())Mutasi pada Enumerasi
Enumerasi juga dapat memiliki metode mutating yang mengubah instans menjadi kasus yang berbeda.
enum Light {
case on, off
mutating func toggle() {
self = (self == .on) ? .off : .on
}
}
var l = Light.off
l.toggle()
print(l)Tidak Dapat Dipanggil pada let
Anda tidak dapat memanggil metode mutating pada instans konstan (let); tindakan tersebut menyebabkan error kompilasi.
struct Counter {
var value = 0
mutating func bump() { value += 1 }
}
var c = Counter()
c.bump()
// let d = Counter(); d.bump() // error
print(c.value)Mengubah Beberapa Properti
Satu metode mutating dapat mengubah beberapa properti sekaligus.
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)Mutasi Sambil Mengembalikan Nilai
Metode mutating juga dapat mengembalikan nilai sambil mengubah state.
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)Penggunaan mutating di Pustaka Standar
Metode seperti append pada Array bersifat mutating, sehingga Anda memerlukan array var untuk memanggilnya.
var nums = [1, 2]
nums.append(3)
print(nums)Mutasi dan State Terhitung
Anda dapat memperbarui state turunan di dalam metode mutasi, sehingga invariant tetap konsisten.
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)Urutan Itu Penting
Pernyataan di dalam metode mutasi dijalankan dari atas ke bawah, sehingga baris berikutnya dapat melihat perubahan sebelumnya.
struct Accumulator {
var total = 0
mutating func process() {
total += 1
total *= 10
}
}
var a = Accumulator()
a.process()
print(a.total)Kelas Tidak Memerlukan mutating
Tipe referensi (class) dapat mengubah properti tanpa kata kunci tersebut karena bukan merupakan tipe nilai.
class Box {
var value = 0
func bump() { value += 1 }
}
let box = Box()
box.bump()
print(box.value)Pemeriksaan Singkat
Uji kata kunci mutasi.
Ringkasan
Tandai metode instans struct atau enumerasi dengan mutating saat metode tersebut mengubah properti tersimpan (atau, untuk enumerasi, mengganti kasus). Metode seperti ini tidak dapat dipanggil pada instans let. Kelas, yang merupakan tipe referensi, tidak pernah memerlukannya.
struct C { var v = 0; mutating func inc() { v += 1 } }
var c = C()
c.inc()
print(c.v)Belajar Swift dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 122
- Pelajaran
- 409
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kata Kunci mutating” gratis?
Ya — teks lengkap “Kata Kunci mutating” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kata Kunci mutating”?
Tuliskan metode yang mengubah keadaan struct dan enum. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Kata Kunci mutating” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.