小编dot*_*ism的帖子

数组初始化的短期和长期形式之间的有效差异

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)

arrays swift

7
推荐指数
0
解决办法
137
查看次数

标签 统计

arrays ×1

swift ×1