0Pricing
Swift Academy · Pelajaran

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.5

description 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)  // Hearts

Menyusun 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: 21C

Jaga 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#42

Pemformatan 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 stock

Pemeriksaan Singkat

Properti apa yang diperlukan oleh CustomStringConvertible?

Ringkasan

Anda telah mempelajari protokol deskripsi string kustom:

  • Sediakan var description: String untuk 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

  1. CustomStringConvertible
  2. CustomDebugStringConvertible
  3. Refleksi dengan Mirror
  4. Membangun Tipe yang Ramah untuk Debug
← Kembali ke Swift Academy