初始化器
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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。