用法一
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:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。