文書   >  Swift   >  String   >   init(describing:)
汎用イニシャライザ
init(describing:)
与えられた値を表す文字列を作成します。
宣言
議論
このイニシャライザを使用して、任意の型のインスタンスを String インスタンスとしての適切な表現に変換します。イニシャライザは、そのプロトコルへの準拠性に応じて、以下のいずれかの方法で instance の文字列表現を作成します。
- instance が TextOutputStreamable プロトコルに準拠している場合、結果は空の文字列 s に対して instance.write(to:s) を呼び出すことによって得られます。
- instance が CustomStringConvertible プロトコルに準拠している場合、結果は instance.description です。
- instance が CustomDebugStringConvertible プロトコルに準拠している場合、結果は instance.debugDescription です。
- 指定していない結果は、Swift 標準ライブラリによって自動的に提供されます。
たとえば、このカスタムの Point 構造体は、標準ライブラリによって提供されるデフォルトの表現を使用します。
struct Point {
let x: Int, y: Int
}
let p = Point(x: 21, y: 30)
print(String(describing: p))
// Prints "Point(x: 21, y: 30)"
description プロパティを実装することによって CustomStringConvertible への準拠を追加した後、Point は独自のカスタム表現を提供します。
extension Point: CustomStringConvertible {
var description: String {
return "(\(x), \(y))"
}
}
print(String(describing: p))
// Prints "(21, 30)"
以下も見よ
他の型を文字列に変換
与えられた LosslessStringConvertible インスタンスの説明からインスタンスを作成します。
init<Subject>(describing: Subject)
与えられた値を表す文字列を作成します。
init<Subject>(describing: Subject)
与えられた値を表す文字列を作成します。
init<Subject>(describing: Subject)
与えられた値を表す文字列を作成します。
init<Subject>(reflecting: Subject)
デバッグに適した、与えられた値の詳細表現で文字列を作成します。