用法一
init(describing:)
声明
init<Subject>(describing instance: Subject) where Subject : TextOutputStreamable
详述
使用此初始化程序将任何类型的实例转换为其首选表示形式,即 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)"
可用版本
用法二
init(describing:)
声明
init<Subject>(describing instance: Subject)
详述
使用此初始化程序将任何类型的实例转换为其首选表示形式,即 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)"
可用版本
用法三
init(describing:)
声明
init<Subject>(describing instance: Subject) where Subject : CustomStringConvertible, Subject : TextOutputStreamable
详述
使用此初始化程序将任何类型的实例转换为其首选表示形式,即 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)"
可用版本
用法四
init(describing:)
声明
init<Subject>(describing instance: Subject) where Subject : CustomStringConvertible
详述
使用此初始化程序将任何类型的实例转换为其首选表示形式,即 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)"
可用版本
相关用法
- Swift String init()用法及代码示例
- Swift String init(_:radix:uppercase:)用法及代码示例
- Swift String init(cString:)用法及代码示例
- Swift String init(reflecting:)用法及代码示例
- Swift String init(stringLiteral:)用法及代码示例
- Swift String init(repeating:count:)用法及代码示例
- 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(describing:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。