Properti terhitung dengan get/set
Buat properti terhitung (hanya-baca dan baca-tulis) menggunakan get/set, tegakkan invarian dalam setter, dan gunakan kontrol akses seperti private(set).
Properti terhitung dengan get/set adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Ikhtisar
Properti terhitung menurunkan nilai saat diakses dan dapat menyinkronkan keadaan saat ditetapkan. Gunakan properti ini untuk menjaga invarian tetap rapi.
Terhitung hanya-baca
Properti terhitung hanya-baca tidak memiliki set. Jagalah agar penurunan nilainya sederhana dan murah.
struct Rectangle {
var width: Double
var height: Double
var area: Double { // read-only computed
width * height
}
}
let r = Rectangle(width: 3, height: 4)
print("area =", r.area) // 12Get/set baca-tulis
Tambahkan get/set untuk membuat properti terhitung baca-tulis yang menjaga nilai-nilai terkait tetap sinkron.
struct Circle {
var radius: Double // stored
var diameter: Double { // computed read–write
get { radius * 2 }
set { radius = newValue / 2 }
}
}
var c = Circle(radius: 5)
print(c.diameter) // 10
c.diameter = 14
print(c.radius) // 7Validasi setter
Setter dapat memvalidasi masukan. Anda dapat menggunakan nama newValue implisit jika tidak ada nama khusus.
struct Percentage {
private var _raw: Int = 0 // backing store
var value: Int {
get { _raw }
set { // uses implicit newValue
_raw = min(100, max(0, newValue))
}
}
}
var p = Percentage()
p.value = 120
print(p.value) // 100
p.value = -5
print(p.value) // 0private(set)
Gunakan private(set) untuk mengekspos nilai agar dapat dibaca, sekaligus membatasi penulisan hanya pada tipe itu sendiri.
struct ScoreBoard {
private(set) var highScore = 0 // public read, internal write
mutating func update(_ v: Int) {
if v > highScore { highScore = v }
}
}
var s = ScoreBoard()
s.update(30)
print(s.highScore)
// s.highScore = 50 // error outside the typeCatatan dan kiat
Catatan:
- Properti terhitung tidak menyimpan data; properti tersebut menghitungnya sesuai permintaan.
- Properti tersebut tidak mendukung willSet/didSet; letakkan logika di set sebagai gantinya.
- Jaga agar pengambil nilai tetap cepat; pekerjaan berat sebaiknya diletakkan dalam metode.
Definisi properti terhitung
Pemeriksaan singkat: Apa yang mendefinisikan properti terhitung?
Rangkuman
Rangkuman: Buat properti terhitung hanya-baca dan baca-tulis, lakukan validasi dalam set, dan gunakan private(set) untuk mengatur pihak yang dapat mengubah data.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Properti terhitung dengan get/set” gratis?
Ya — teks lengkap “Properti terhitung dengan get/set” 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 “Properti terhitung dengan get/set”?
Buat properti terhitung (hanya-baca dan baca-tulis) menggunakan get/set, tegakkan invarian dalam setter, dan gunakan kontrol akses seperti private(set). 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 3 dari 4.
Berapa lama pelajaran “Properti terhitung dengan get/set” 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.
Semua pelajaran dalam kursus ini
- Properti & Subscript
- lazy & observer properti
- Properti terhitung dengan get/set
- Subscript untuk pengindeksan khusus