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布伦南:永远欢迎好友:如果有帮助,请考虑接受答案。