Swift Guided Tour中的最后一次实验要求读者:
修改anyCommonElements(_:_ :)函数以生成一个函数,该函数返回任意两个序列共有的元素数组.
我修改的第一个快速通道:
func anyCommonElements <T: SequenceType, U: SequenceType where T.Generator.Element: Equatable, T.Generator.Element == U.Generator.Element> (lhs: T, _ rhs: U) -> [T.Generator.Element] {
var commonElements = [T.Generator.Element]()
for lhsItem in lhs {
for rhsItem in rhs {
if lhsItem == rhsItem {
commonElements.append(lhsItem)
}
}
}
return commonElements
}
Run Code Online (Sandbox Code Playgroud)
我收到与commonElementsXcode 7.1.1中第2行的数组初始化相关的错误:
无效使用'[]'来调用非函数类型'[T.Generator.Element.Type]'的值
但是,如果我只是简单地更改初始化以使用在第2行创建空数组的纵向形式,那么一切都可以正常运行且没有错误:
func anyCommonElements <T: SequenceType, U: SequenceType where T.Generator.Element: Equatable, T.Generator.Element == U.Generator.Element> (lhs: T, _ rhs: U) -> [T.Generator.Element] {
var …Run Code Online (Sandbox Code Playgroud)