如果直接Array添加拓展的方法一般的寫法就是下面這樣.
extension Array {
...
}
當(dāng)Array這個(gè)數(shù)組包含的自己定義的類, 而這個(gè)方法又不能給全部的Array調(diào)用, 那么該怎么寫呢旦万?
比如我聲明了一個(gè)這樣的數(shù)組var channels = [ChannelVos]
, 我只想給包含了ChannelVos
的這個(gè)數(shù)組添加拓展方法, 那么該怎么辦呢 ?
這里就要用到where
去做判斷, 代碼如下:
extension _ArrayType where Generator.Element == ChannelVos {
func channelsForGroupNames(groupNames:[String]) -> [String:ChannelVos]? {
...
return nil
}
}
var aa = [String]()
var bb = [ChannelVos]()
aa.channelsForGroupNames(["aaa"]) //找不到這個(gè)拓展方法
bb.channelsForGroupNames(["aaa"]) //正常使用