0Pricing
Swift Academy · Lektion

CustomStringConvertible

Definieren Sie eine lesbare Beschreibung für Ihre Typen.

CustomStringConvertible ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist CustomStringConvertible?

Mit diesem Protokoll können Sie festlegen, wie Ihr Typ bei der Ausgabe oder bei der Interpolation in einen String erscheint. Sie stellen eine description-Eigenschaft bereit.

Die Standarddarstellung ist unschön

Ohne dieses Protokoll geben Strukturen ihre vollständige Darstellung mit allen Mitgliedern aus, was oft unübersichtlich ist:

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

description hinzufügen

Stellen Sie die Konformität her und geben Sie var description: String an:

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

Verwendet von print und String(describing:)

Ihre description wird von print und der String-Interpolation verwendet:

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 im Vergleich zu direkten Eigenschaften

description ist für lesbaren Text vorgesehen, der Benutzerinnen und Benutzern angezeigt wird. Sie ist nicht dafür gedacht, wieder eingelesen zu werden — das ist eine andere Aufgabe (Codable). Halten Sie sie lesbar.

Ein Enum formatieren

Geben Sie Enums verständliche Namen:

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

Beschreibungen zusammensetzen

Erstellen Sie eine description aus den Beschreibungen der Mitglieder:

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

Innerhalb von Collections

Beim Ausgeben einer Collection wird die description jedes Elements aufgerufen:

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

Interpolation verwendet description

Die String-Interpolation verwendet automatisch Ihre description:

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

Halten Sie es schlank

description kann häufig aufgerufen werden (etwa für Protokollierung oder Debugging). Vermeiden Sie aufwendige Vorgänge darin und berechnen Sie aus den gespeicherten Eigenschaften einen einfachen String.

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

Bedingte Formatierung

description kann abhängig vom Zustand unterschiedliche, natürlich lesbare Texte erzeugen:

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

Schnelltest

Welche Eigenschaft wird von CustomStringConvertible verlangt?

Zusammenfassung

Sie haben CustomStringConvertible kennengelernt:

  • Stellen Sie var description: String für Text bereit, der Benutzerinnen und Benutzern angezeigt wird
  • Wird von print, String(describing:) und der Interpolation verwendet
  • Halten Sie die Darstellung lesbar und effizient; zielen Sie nicht auf eine verlustfreie Hin- und Rückkonvertierung
  • Funktioniert automatisch innerhalb von Collections

Als Nächstes: CustomDebugStringConvertible.

Häufig gestellte Fragen

Ist die Lektion „CustomStringConvertible“ kostenlos?

Ja — der vollständige Text von „CustomStringConvertible“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „CustomStringConvertible“?

Definieren Sie eine lesbare Beschreibung für Ihre Typen. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „CustomStringConvertible“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. CustomStringConvertible
  2. CustomDebugStringConvertible
  3. Reflektion mit Mirror
  4. Debug-freundliche Typen erstellen
← Zurück zu Swift Academy