初始化器
init(reflecting:)
創建具有給定值的詳細表示的字符串,適合調試。
聲明
init<Subject>(reflecting subject: Subject)
詳述
使用此初始化程序將任何類型的實例轉換為其自定義調試表示。初始化程序根據其協議一致性以下列方式之一創建instance
的字符串表示:
-
如果
subject
符合CustomDebugStringConvertible
協議,則結果為subject.debugDescription
。 -
如果
subject
符合CustomStringConvertible
協議,則結果為subject.description
。 -
如果
subject
符合TextOutputStreamable
協議,則通過在空字符串s
上調用subject.write(to: s)
獲得結果。 -
Swift 標準庫會自動提供未指定的結果。
例如,這個自定義 Point
結構使用標準庫提供的默認表示。
struct Point {
let x: Int, y: Int
}
let p = Point(x: 21, y: 30)
print(String(reflecting: p))
// Prints "p: Point = {
// x = 21
// y = 30
// }"
通過實現debugDescription
屬性添加CustomDebugStringConvertible
一致性後,Point
提供了自己的自定義調試表示。
extension Point: CustomDebugStringConvertible {
var debugDescription: String {
return "Point(x: \(x), y: \(y))"
}
}
print(String(reflecting: p))
// Prints "Point(x: 21, y: 30)"
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相關用法
- Swift String init(repeating:count:)用法及代碼示例
- Swift String init()用法及代碼示例
- Swift String init(_:radix:uppercase:)用法及代碼示例
- Swift String init(cString:)用法及代碼示例
- Swift String init(stringLiteral:)用法及代碼示例
- Swift String init(describing:)用法及代碼示例
- Swift String init(unsafeUninitializedCapacity:initializingUTF8With:)用法及代碼示例
- Swift String init(validatingUTF8:)用法及代碼示例
- Swift String init(stringInterpolation:)用法及代碼示例
- Swift String init(_:)用法及代碼示例
- Swift String insert(contentsOf:at:)用法及代碼示例
- Swift String index(_:offsetBy:limitedBy:)用法及代碼示例
- Swift String index(_:offsetBy:)用法及代碼示例
- Swift String indices用法及代碼示例
- Swift String insert(_:at:)用法及代碼示例
- Swift String isEmpty用法及代碼示例
- Swift String suffix(from:)用法及代碼示例
- Swift String removeAll(where:)用法及代碼示例
- Swift String ...(_:_:)用法及代碼示例
- Swift String last用法及代碼示例
- Swift String contains(where:)用法及代碼示例
- Swift String prefix(through:)用法及代碼示例
- Swift String contains(_:)用法及代碼示例
- Swift String firstIndex(where:)用法及代碼示例
- Swift String first用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 String init(reflecting:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。