CustomStringConvertibleプロトコル
5162 ワード
こんにちは!リリー:-)
今日は、オブジェクトをStringに変換するときにカスタムStringに変換できるCustomStringConvertibleプロトコルについて説明します.
アップルの開発者ドキュメントの記事(以下のリンク)から作成😊
📑コメントドキュメント
[Apple Developer Documentaion] CustomStringConvertible
このプロトコルのタイプに従うと、インスタンスをstringに変換するときに、自分で定義した表現として使用できます.
プロトコルを実装する方法は、タイプ内の例示的なプロトコルを定義する(
❌)
逆に、
今日は、オブジェクトをStringに変換するときにカスタムStringに変換できるCustomStringConvertibleプロトコルについて説明します.
アップルの開発者ドキュメントの記事(以下のリンク)から作成😊
📑コメントドキュメント
[Apple Developer Documentaion] CustomStringConvertible
CustomStringConvertibleプロトコル
このプロトコルのタイプに従うと、インスタンスをstringに変換するときに、自分で定義した表現として使用できます.
プロトコルを実装する方法は、タイプ内の例示的なプロトコルを定義する(
description
).var description: String { get }
CustomStringConvertibleプロトコルに適合するタイプのインスタンスを出力しようとすると、description
プロトコルで定義された表現(戻り値)を入力して出力します.struct Point {
let x: Int, y: Int
}
let p = Point(x: 21, y: 30)
print(p)
// Prints "Point(x: 21, y: 30)"
extension Point: CustomStringConvertible {
var description: String {
return "(\(x), \(y))" // customized representation
}
}
print(p)
// Prints "(21, 30)"
でも気をつけたいのは!description
への直接アクセスは推奨されません.(p.description❌)
逆に、
String(describing:)
の頭文字でログインすることをお勧めします.String(describing:)
頭文字タグは、CustomStringConvertibleプロトコルに適合するすべてのタイプをパラメータとして受け入れ、description
プロトコルの戻り値(CustomString)に初期化する.struct Point: CustomStringConvertible {
let x: Int, y: Int
var description: String {
return "(\(x), \(y))"
}
}
let p = Point(x: 21, y: 30)
let s = String(describing: p) // 프로토콜을 준수하는 인스턴스를 인자값으로 받아 초기화
print(s)
// Prints "(21, 30)"
Reference
この問題について(CustomStringConvertibleプロトコル), 我々は、より多くの情報をここで見つけました https://velog.io/@yeahg_dev/CustomStringConvertible-프로토콜テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol