Swift 上下文类型';Int';不能与数组文字一起使用

Swift 上下文类型';Int';不能与数组文字一起使用,swift,for-loop,Swift,For Loop,我尝试执行的代码将返回数组中相邻成员的最大乘积。 这是我的密码: func adjacentElementsProduct(inputArray: [Int]) -> Int { var multiplierArray = [Int?]() for i in 0...(inputArray.count-1) { multiplierArray.append([inputArray[i]*inputArray[i+1]]) } retu

我尝试执行的代码将返回数组中相邻成员的最大乘积。 这是我的密码:

func adjacentElementsProduct(inputArray: [Int]) -> Int {
    var multiplierArray = [Int?]()

    for i in 0...(inputArray.count-1) {
        multiplierArray.append([inputArray[i]*inputArray[i+1]])
       }
    return multiplierArray.max()
}
我得到了一行标题中描述的错误:

multiplierArray.append([inputArray[i]*inputArray[i+1]])
return multiplierArray.max()
我还遇到另一个错误:调用中缺少参数“by”的参数 在线:

multiplierArray.append([inputArray[i]*inputArray[i+1]])
return multiplierArray.max()
非常感谢您的帮助,如果这个问题的格式或其他方面有错误,请立即纠正我

func adjacentElementsProduct(inputArray: [Int]) -> Int {
    var multiplierArray = [Int]()

    for i in 0...(inputArray.count-1) {
        multiplierArray.append(inputArray[i] * inputArray[i+1])
    }
    return multiplierArray.max()!
}
编辑:

修复索引超出范围:)


代码中的问题是u在数组中的每个元素上迭代,并且将该数字与其在数组中的相邻数字相乘。当你到达最后一个元素时,你试图访问下一个元素而不检查它就会退出数组。

你需要添加一个
Int
而不是
Int
数组,所以更改此行
multiperArray.append([inputArray[i]*inputArray[i+1]])
通过这个
multiperArray.append(inputArray[i]*inputArray[i+1]))
该错误完全是不言自明的。也可以通过此
var multiperarray:[Int]=[]更改此
var multiperarray=[Int?]()
非常感谢!当我运行代码时,问题中以前的所有错误都已修复。但运行时,返回是一个致命错误,因为索引超出范围。我以前用另一种方法处理这段代码时遇到过这个错误。如果不是太麻烦的话,你能为这个错误提供一个建议吗?再一次,谢谢@科林·布伦南:给我一杯minute@colin布伦南:永远欢迎好友:如果有帮助,请考虑接受答案。