例如,我有一个通用的类型别名
typealias StringArray = Array<String>
不可能这样扩展:
extension StringArray {
//Some methods
}
但是有可能以其他方式还是我要写
extension Array where Element == String {
//Some methods
}
?
答案 0 :(得分:0)
请注意,类型别名只是现有类型的标签,因此:
extension StringArray {
//Some methods
}
与此相同:
extension Array<String> {
//Some methods
}
那不能编译,因为扩展不是这样工作的。如果要过滤泛型,则必须插入where
子句。有关扩展的更多信息:
https://docs.swift.org/swift-book/LanguageGuide/Extensions.html
有关扩展中的通用where
子句的更多信息:https://docs.swift.org/swift-book/LanguageGuide/Generics.html#ID553