【发布时间】:2018-10-16 06:15:26
【问题描述】:
我正在尝试在 Swift 中实现常用算法。
即使我没有将数字定义为 let 变量,但出现以下错误:
不能通过下标赋值:'numbers' 是 'let' 常量 数字[i] = maxNumber
我的实现如下:
func InsertionSort (numbers : [Int]) -> [Int]
{
var maxNumber = 0
var j = 0
var size = numbers.count-1
for (i,number) in numbers.enumerated()
{
j = i + 1
for index in j...size
{
if numbers[index] > number
{
maxNumber = numbers[index]
numbers[index] = numbers[i]
// error is thrown in the following line
numbers[i] = maxNumber
}
}
}
return numbers
}
【问题讨论】:
-
函数参数默认为常量。
-
@RakeshaShastri 虽然这个问题的答案在这里有效,但我认为这不是这种情况下的最佳解决方案。
-
@Sweeper 取决于他对返回值的处理,他可以使用您的答案或
inout参数。
标签: swift algorithm data-structures