Subscript untuk pengindeksan khusus
Definisikan subscript khusus untuk membaca/menulis elemen dengan sintaks seperti array, tambahkan accessor aman, dukung pengindeksan dengan banyak parameter, bahkan subscript tipe (statis).
Subscript untuk pengindeksan khusus adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 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
Gunakan subskrip untuk mengakses data dengan sintaks tanda kurung siku. Anda dapat membuatnya hanya-baca atau baca-tulis, bahkan menerima beberapa indeks.
Subskrip baca-tulis
Buat subskrip get/set untuk mengekspos penyimpanan internal dengan sintaks seperti larik.
struct Box {
private var items: [String] = []
init(_ values: [String]) { self.items = values }
subscript(index: Int) -> String {
get { items[index] } // may trap if out of bounds (like Array)
set { items[index] = newValue }
}
}
var b = Box(["a","b","c"])
print(b[1]) // "b"
b[1] = "B"
print(b[1]) // "B"Subskrip aman
Kembalikan nilai opsional untuk menghindari jebakan pada indeks yang tidak valid: subskrip aman yang mudah digunakan.
extension Array {
subscript(safe i: Int) -> Element? {
return indices.contains(i) ? self[i] : nil
}
}
let arr = [10,20]
print(arr[safe: 1] ?? -1) // 20
print(arr[safe: 5] ?? -1) // -1Multi-parameter
Subskrip dapat menerima beberapa parameter—sangat cocok untuk matriks atau akses koordinat.
struct Matrix {
let rows: Int, cols: Int
private var grid: [Int]
init(rows: Int, cols: Int, fill: Int = 0) {
self.rows = rows; self.cols = cols
self.grid = Array(repeating: fill, count: rows*cols)
}
private func index(_ r: Int, _ c: Int) -> Int { r*cols + c }
subscript(r: Int, c: Int) -> Int {
get { grid[index(r,c)] }
set { grid[index(r,c)] = newValue }
}
}
var m = Matrix(rows: 2, cols: 3)
m[0, 2] = 7
print(m[0, 2])Subskrip tipe
Tambahkan subskrip tipe (dengan static) untuk melakukan pengindeksan pada tipe itu sendiri, bukan pada instans.
struct Roman {
static let map: [Int:String] = [1:"I", 5:"V", 10:"X"]
static subscript(_ n: Int) -> String? {
return map[n]
}
}
print(Roman[5] ?? "?") // "V"Kiat
Kiat:
- Utamakan pengembalian nilai opsional untuk akses yang aman.
- Jaga agar subskrip tetap sederhana; logika berat sebaiknya diletakkan dalam metode.
- Beri nama parameter agar jelas, misalnya
[row:col:].
Makna subskrip
Pemeriksaan singkat: Apa yang dimungkinkan oleh subskrip?
Rangkuman
Rangkuman: Buat subskrip baca-tulis, tambahkan pengakses opsional yang aman, dukung pengindeksan dengan beberapa parameter, dan bahkan definisikan subskrip tipe.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Subscript untuk pengindeksan khusus” gratis?
Ya — teks lengkap “Subscript untuk pengindeksan khusus” 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 “Subscript untuk pengindeksan khusus”?
Definisikan subscript khusus untuk membaca/menulis elemen dengan sintaks seperti array, tambahkan accessor aman, dukung pengindeksan dengan banyak parameter, bahkan subscript tipe (statis). 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 4 dari 4.
Berapa lama pelajaran “Subscript untuk pengindeksan khusus” 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