0Pricing
Swift Academy · Ders

CustomStringConvertible

Türleriniz için okunabilir bir açıklama tanımlayın.

CustomStringConvertible, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

CustomStringConvertible Nedir?

Bu protokol, türünüzün yazdırıldığında veya bir dizeye yerleştirildiğinde nasıl görüneceğini denetlemenizi sağlar. Bir description özelliği sağlamanız gerekir.

Varsayılan Görünüm Çirkindir

Bu özellik olmadan yapılar, tüm üyelerini içeren biçimleriyle yazdırılır; bu biçim çoğu zaman gereksiz ayrıntı içerir:

struct Point { let x: Int; let y: Int }
print(Point(x: 1, y: 2))  // Point(x: 1, y: 2)

description Ekleme

Uyumluluk sağlayın ve var description: String özelliğini sunun:

struct Point: CustomStringConvertible {
    let x: Int
    let y: Int
    var description: String { "(\(x), \(y))" }
}
print(Point(x: 1, y: 2))  // (1, 2)

print ve String(describing:) Tarafından Kullanılır

Açıklamanız, print ve dize yerleştirmenin kullandığı değerdir:

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 ile Doğrudan Özellikler Karşılaştırması

description, insanlar tarafından okunabilen ve kullanıcıya gösterilen metin içindir. Bu metnin yeniden ayrıştırılması amaçlanmaz; bu, farklı bir konudur (kodlanabilirlik). Okunabilir tutun.

Bir Numaralandırmayı Biçimlendirme

Numaralandırmalara anlaşılır adlar verin:

enum Suit: CustomStringConvertible {
    case hearts, spades
    var description: String {
        switch self {
        case .hearts: return "Hearts"
        case .spades: return "Spades"
        }
    }
}
print(Suit.hearts)  // Hearts

Açıklamaları Birleştirme

Bir açıklamayı üye açıklamalarından oluşturun:

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"]

Koleksiyonların İçinde

Bir koleksiyonu yazdırmak, her öğenin açıklamasını çağırır:

struct Tag: CustomStringConvertible {
    let name: String
    var description: String { "#\(name)" }
}
print([Tag(name: "swift"), Tag(name: "ios")])  // [#swift, #ios]

Dize Yerleştirme description Kullanır

Dize yerleştirme, description özelliğinizi otomatik olarak kullanır:

struct Temperature: CustomStringConvertible {
    let celsius: Int
    var description: String { "\(celsius)C" }
}
let t = Temperature(celsius: 21)
print("Now: \(t)")  // Now: 21C

Hafif Tutun

description sık sık çağrılabilir (kayıt tutma, hata ayıklama). İçinde ağır işlemler yapmaktan kaçının; saklanan özelliklerden basit bir dize oluşturun.

struct ID: CustomStringConvertible {
    let value: Int
    var description: String { "ID#\(value)" }
}
print(ID(value: 42))  // ID#42

Koşullu Biçimlendirme

description, doğal okunması için duruma göre farklı dallara ayrılabilir:

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

Hızlı Kontrol

CustomStringConvertible hangi özelliği gerektirir?

Özet

CustomStringConvertible öğrendiniz:

  • Kullanıcıya gösterilen metin için var description: String sağlayın
  • print, String(describing:) ve dize yerleştirme tarafından kullanılır
  • Okunabilir ve hafif tutun; metnin dönüştürülüp yeniden aynı hâle getirilmesini amaçlamayın
  • Koleksiyonların içinde otomatik olarak çalışır

Sıradaki konu: CustomDebugStringConvertible.

Sıkça Sorulan Sorular

“CustomStringConvertible” dersi ücretsiz mi?

Evet — “CustomStringConvertible” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“CustomStringConvertible” dersinde ne öğreneceğim?

Türleriniz için okunabilir bir açıklama tanımlayın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“CustomStringConvertible” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. CustomStringConvertible
  2. CustomDebugStringConvertible
  3. Mirror ile Yansıma
  4. Hata Ayıklamaya Uygun Türler Oluşturma
← Swift Academy Sayfasına Dön