Swift如何給自定义的Array使用Extension

如果直接Array添加拓展的方法一般的写法就是下面这样.

extension Array {
    ...
}

当Array这个数组包含的自己定义的类, 而这个方法又不能给全部的Array调用, 那么该怎么写呢?
比如我声明了一个这样的数组var channels = [ChannelVos], 我只想给包含了ChannelVos的这个数组添加拓展方法, 那么该怎么办呢 ?
这里就要用到where去做判断, 代码如下:

extension _ArrayType where Generator.Element == ChannelVos  {
    func channelsForGroupNames(groupNames:[String]) -> [String:ChannelVos]? {
        ...
        return nil
    }
}

var aa = [String]()
var bb = [ChannelVos]()
aa.channelsForGroupNames(["aaa"]) //找不到这个拓展方法
bb.channelsForGroupNames(["aaa"]) //正常使用

推荐阅读更多精彩内容