在约束变量中添加inout数组

时间:2017-03-10 19:37:39

标签: swift

我无法在约束变量

中添加inout数组
import Foundation
public func solution(_ A : inout [Int]) -> Int {
    var someRight = [Int]()
    for index in 0...(A.count) {
        someRight.append(A[index])
    }
    return -1
}

var result : Int = solution(&Int: [6,7,8])   ///Here i get error 

1 个答案:

答案 0 :(得分:2)

这里有几个问题。首先,solution(&Int: [6,7,8])不是如何调用该函数。标签&前面的Int不是传递inout的方法。 &应位于变量本身的前面。其次,Int不是该功能的标签。事实上,它有一个未命名的标签(solution(_:)中的下划线,因此方法调用只是solution(&[6,7,8])

如果出现这些语法错误,编译器可以为您提供更多帮助。现在它会告诉你,你没有传递一个可变变量。我们必须告诉编译器您要传入的数组是可变的,因此我们必须声明一个新变量:var arr = [6,7,8]。然后我们可以将该变量传递给函数。

最后,你的for循环中存在一个越界错误。您应该使用..<代替......将尝试访问数组中比数组多一个索引的元素。有了这些修复后,你应该好好去。

public func solution(_ A : inout [Int]) -> Int {
    var someRight = [Int]()
    for index in 0..<(A.count) {
        someRight.append(A[index])
    }
    return -1
}

var arr = [6,7,8]
var result : Int = solution(&arr)