至于现在,您无法在SWIFT中编写Array
“其Element
总是String
”的扩展名。
但是你可以写一些扩展,它具有几乎相同的功能。
自己写的协议,该协议String
能够符合:
protocol MyStringType {
var characters: String.CharacterView { get }
//You may need some other properties or methods to write your extension...
}
// Make `String` the only type conforming to `MyStringType`.
extension String: MyStringType {}
而写到哪Element
符合协议的扩展。
extension Array where Element: MyStringType {
func spliteByPrefix() -> [Element]{ //You really want to return, `Array<Element>`?
for item in self {
for ch in item.characters {
//Do something with `ch`.
_ = ch
}
}
return []
}
}
注意,任何类型的可以采用StringLiteralConvertible,见http://nshipster.com/swift-literal-convertible/对于一些例子。 –
感谢@MartinR的评论,我更新了代码我认为StringLiteralConvertible不是一个正确的选择 – David
您是否检查过编译? –