我无法在约束变量
中添加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
答案 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)