В Swift переменные в функциях по умолчанию являются константами и копируют исходного значения (при условии, что они являются структурами, как в случае с Int
с).
Это можно обойти двумя способами:
Вы можете либо объявить копию переменной в теле функции, а затем вернуть k:
func maximumToys(prices: [Int], k: Int) -> Int {
var k = k
...
return k
}
ИлиВы можете использовать ключевое слово inout
в переменной.Если вы используете ключевое слово inout
, помните, что вы собираетесь изменить исходное значение.Это делает ваш код больше не потокобезопасным, так как множественный доступ к одному и тому же пути памяти может привести к неопределенному поведению