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.5description 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) // HeartsAçı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: 21CHafif 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#42Koş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 stockHızlı Kontrol
CustomStringConvertible hangi özelliği gerektirir?
Özet
CustomStringConvertible öğrendiniz:
- Kullanıcıya gösterilen metin için
var description: Stringsağ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
- CustomStringConvertible
- CustomDebugStringConvertible
- Mirror ile Yansıma
- Hata Ayıklamaya Uygun Türler Oluşturma