从
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>().
我错过了什么吗?
也许编译器感到困惑.这虽然有效
原文链接:https://www.f2er.com/swift/443725.htmlvar result: [T.GeneratorType.Element] = []
并且更具可读性IMO.