Ric*_*hiy 1 string type-systems initialization ios swift
是否可以在不单独指定每种类型的情况下对上述所有类型进行扩展?
例如,这里是这样的扩展Double:
extension String {
init?(_ value: Double?) {
if let nonOpt = value {
self.init(nonOpt)
} else {
return nil
}
}
}
let nonOpt: Double = 1
let opt: Double? = 1
let string = String(opt)
print(string)
Run Code Online (Sandbox Code Playgroud)
如果可以使用原始类型初始化字符串,我想允许使用可选类型进行字符串初始化。
你的意思是这样吗
extension String {
init?<T : CustomStringConvertible>(_ value : T?) {
guard let value = value else { return nil }
self.init(describing: value)
}
}
Run Code Online (Sandbox Code Playgroud)
或者
extension String {
init?<T : LosslessStringConvertible>(_ value : T?) {
guard let value = value else { return nil }
self.init(value)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1943 次 |
| 最近记录: |