你如何写一个扩展来支持[String]和[Substring]?

时间:2018-03-10 06:43:14

标签: swift swift4 swift-extensions

通常,要针对[String]撰写扩展程序,请执行此操作...

extension Array where Element == String {
    ....
}

但是,有时我没有[String]而是[Substring]。你怎么写一个支持?

的扩展

1 个答案:

答案 0 :(得分:3)

StringSubstring都符合StringProtocol协议, 所以你可以定义

extension Array where Element: StringProtocol {
    // ...
}

标准库中的许多函数已被推广 取StringProtocol个参数,例如Int 初始化

convenience init?<S>(_ text: S, radix: Int = default) where S : StringProtocol

这样您就可以使用StringSubstring

来调用它
let n = Int("1234")
let m = Int("1234".dropFirst())