CustomStringConvertible
Definisikan deskripsi yang mudah dibaca untuk tipe Anda.
CustomStringConvertible adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Apa Itu Protokol Deskripsi String Kustom?
Protokol ini memungkinkan Anda mengatur tampilan tipe saat dicetak atau disisipkan ke dalam string. Anda menyediakan properti description.
Bawaan yang Kurang Rapi
Tanpa protokol ini, struktur dicetak dalam bentuk lengkap berdasarkan semua anggotanya, yang sering kali terlalu ramai:
struct Point { let x: Int; let y: Int }
print(Point(x: 1, y: 2)) // Point(x: 1, y: 2)Menambahkan description
Terapkan protokolnya dan sediakan var description: String:
struct Point: CustomStringConvertible {
let x: Int
let y: Int
var description: String { "(\(x), \(y))" }
}
print(Point(x: 1, y: 2)) // (1, 2)Digunakan oleh print dan String(describing:)
Deskripsi Anda digunakan oleh print dan interpolasi string:
struct Money: CustomStringConvertible {
let cents: Int
var description: String { "$\(Double(cents) / 100)" }
}
let m = Money(cents: 250)
print("price is \(m)") // price is $2.5description versus Properti Langsung
description ditujukan untuk teks yang mudah dibaca manusia dan ditampilkan kepada pengguna. Properti ini tidak dimaksudkan untuk diurai kembali — itu merupakan hal yang berbeda (Codable). Buatlah tetap mudah dibaca.
Memformat Enumerasi
Berikan nama yang mudah dipahami kepada enumerasi:
enum Suit: CustomStringConvertible {
case hearts, spades
var description: String {
switch self {
case .hearts: return "Hearts"
case .spades: return "Spades"
}
}
}
print(Suit.hearts) // HeartsMenyusun Deskripsi
Buat deskripsi dari deskripsi anggota:
struct Card: CustomStringConvertible {
let rank: Int
let suit: String
var description: String { "\(rank) of \(suit)" }
}
let cards = [Card(rank: 1, suit: "H"), Card(rank: 13, suit: "S")]
print(cards.map { $0.description }) // ["1 of H", "13 of S"]Di Dalam Koleksi
Mencetak koleksi akan memanggil deskripsi setiap elemennya:
struct Tag: CustomStringConvertible {
let name: String
var description: String { "#\(name)" }
}
print([Tag(name: "swift"), Tag(name: "ios")]) // [#swift, #ios]Interpolasi Menggunakan description
Interpolasi string secara otomatis menggunakan description Anda:
struct Temperature: CustomStringConvertible {
let celsius: Int
var description: String { "\(celsius)C" }
}
let t = Temperature(celsius: 21)
print("Now: \(t)") // Now: 21CJaga agar Tetap Ringan
description mungkin sering dipanggil (untuk pencatatan dan diagnostik). Hindari pekerjaan berat di dalamnya; hitung string sederhana dari properti tersimpan.
struct ID: CustomStringConvertible {
let value: Int
var description: String { "ID#\(value)" }
}
print(ID(value: 42)) // ID#42Pemformatan Kondisional
description dapat memilih cabang berdasarkan status agar hasilnya terbaca secara alami:
struct Stock: CustomStringConvertible {
let count: Int
var description: String {
count == 0 ? "Out of stock" : "\(count) in stock"
}
}
print(Stock(count: 0)) // Out of stock
print(Stock(count: 5)) // 5 in stockPemeriksaan Singkat
Properti apa yang diperlukan oleh CustomStringConvertible?
Ringkasan
Anda telah mempelajari protokol deskripsi string kustom:
- Sediakan
var description: Stringuntuk teks yang ditampilkan kepada pengguna - Digunakan oleh
print,String(describing:), dan interpolasi - Jaga agar tetap mudah dibaca dan ringan; jangan menargetkan konversi bolak-balik
- Berfungsi secara otomatis di dalam koleksi
Berikutnya: CustomDebugStringConvertible.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “CustomStringConvertible” gratis?
Ya — teks lengkap “CustomStringConvertible” 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 “CustomStringConvertible”?
Definisikan deskripsi yang mudah dibaca untuk tipe Anda. 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 1 dari 4.
Berapa lama pelajaran “CustomStringConvertible” 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
- CustomStringConvertible
- CustomDebugStringConvertible
- Refleksi dengan Mirror
- Membangun Tipe yang Ramah untuk Debug