Protocol

CustomDebugStringConvertible

A type with a customized textual representation suitable for debugging purposes. デバッグ目的に都合がよいようにカスタマイズされた原文の表現を持つ型。

Declaration 宣言

protocol CustomDebugStringConvertible

Overview 概要

Swift provides a default debugging textual representation for any type. That default representation is used by the String(reflecting:) initializer and the debugPrint(_:) function for types that don’t provide their own. To customize that representation, make your type conform to the CustomDebugStringConvertible protocol. Swiftは、省略時のデバッグ用テキスト表現をあらゆる型に提供します。省略時の表現は、String(reflecting:)イニシャライザおよびdebugPrint(_:)関数によって、それらが自前で提供しない型に対して使われます。この表現をカスタマイズするには、あなたの型をCustomDebugStringConvertibleプロトコルに準拠させてください。

Because the String(reflecting:) initializer works for instances of any type, returning an instance’s debugDescription if the value passed conforms to CustomDebugStringConvertible, accessing a type’s debugDescription property directly or using CustomDebugStringConvertible as a generic constraint is discouraged. String(reflecting:)イニシャライザがあらゆる型のインスタンスに対して働いて、渡される値がdebugDescriptionに準拠するならばインスタンスのCustomDebugStringConvertibleを返すので、ある型のもつdebugDescriptionプロパティに直にアクセスすることや、総称体制約としてCustomDebugStringConvertibleを使うことは推奨されません。

Conforming to the CustomDebugStringConvertible Protocol CustomDebugStringConvertibleプロトコルに準拠する

Add CustomDebugStringConvertible conformance to your custom types by defining a debugDescription property. CustomDebugStringConvertible準拠をあなたのあつらえの型にdebugDescriptionプロパティを定義することによって加えてください。

For example, this custom Point struct uses the default representation supplied by the standard library: 例えば、このあつらえのPoint structは、標準ライブラリによって提供される省略時の表現を使います:


struct Point {
    let x: Int, y: Int
}


let p = Point(x: 21, y: 30)
print(String(reflecting: p))
// Prints "Point(x: 21, y: 30)"

After adding CustomDebugStringConvertible conformance by implementing the debugDescription property, Point provides its own custom debugging representation. CustomDebugStringConvertible準拠をdebugDescriptionプロパティを実装することによって追加後は、Pointはそれ独自のあつらえのデバッグ表現を提供します。


extension Point: CustomDebugStringConvertible {
    var debugDescription: String {
        return "(\(x), \(y))"
    }
}


print(String(reflecting: p))
// Prints "(21, 30)"

Topics 話題

Instance Properties 様々なインスタンスプロパティ

Relationships 関係

Inherited By 継承される先

Conforming Types これらの型が準拠

See Also 参照

String Representation 文字列表現