微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数组 – 新的Swift数组语法和通用函数

Xcode beta 3开始,我们可以将[int]写成Array< Int>的简写.

所以我们应该这样写:

func commonElements <T,U where T: Sequence,U: Sequence,T.GeneratorType.Element: Equatable,T.GeneratorType.Element == U.GeneratorType.Element>
    (lhs: T,rhs: U) -> [T.GeneratorType.Element] {
        var result = [T.GeneratorType.Element]()
        for lhsItem in lhs {
            for rhsItem in rhs {
                if lhsItem == rhsItem {
                    result += rhsItem
                }
            }
        }
        return result
}
commonElements([1,2,3,4],[2,4,6])

由于我不理解的原因,Xcode不接受短语法来初始化结果数组但接受其长等效数组< T.GeneratorType.Element>().

我错过了什么吗?

也许编译器感到困惑.这虽然有效
var result: [T.GeneratorType.Element] = []

并且更具可读性IMO.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐