Параметры являются неизменяемыми по умолчанию.Чтобы сделать параметр изменяемым, вам нужно добавить модификатор inout
.
Однако, увидев, что ваш метод возвращает массив, вы, вероятно, не хотите, чтобы параметр был изменен какЧто ж.Вместо этого вы должны сделать копию параметра, изменить его и вернуть копию:
func InsertionSort (numbers : [Int]) -> [Int]
{
var maxNumber = 0
var j = 0
let size = numbers.count-1
var numbersCopy = numbers // <------ note this line
for (i,number) in numbers.enumerated()
{
j = i + 1
for index in j...size
{
if numbers[index] > number
{
maxNumber = numbers[index]
// note how I modified the copy here
numbersCopy[index] = numbers[i]
numbersCopy[i] = maxNumber
}
}
}
return numbersCopy
}