通常,要针对[String]
撰写扩展程序,请执行此操作...
extension Array where Element == String {
....
}
但是,有时我没有[String]
而是[Substring]
。你怎么写一个支持?
答案 0 :(得分:3)
String
和Substring
都符合StringProtocol
协议,
所以你可以定义
extension Array where Element: StringProtocol {
// ...
}
标准库中的许多函数已被推广
取StringProtocol
个参数,例如Int
初始化
convenience init?<S>(_ text: S, radix: Int = default) where S : StringProtocol
这样您就可以使用String
和Substring
:
let n = Int("1234")
let m = Int("1234".dropFirst())