我一直在尝试在swift中使用sortInPlace函数,但它无法正常工作。当我使用sort函数而不是sortinplace时,它可以工作。
请解释这两个功能之间的区别。如果您能提供演示两种功能使用的小代码示例,那将非常有用。
答案 0 :(得分:14)
var mutableArray = [19, 7, 8, 45, 34]
// function sort sorts the array but does not change it. Also it has return
mutableArray.sort()
mutableArray
// prints 19, 7, 8, 45, 34
// function sortInPlace will mutate the array. Do not have return
mutableArray.sortInPlace()
mutableArray
// prints 7, 8, 19, 34, 45
答案 1 :(得分:2)
FWIW,在Swift 3中没有sortInPlace
。相反,有一个sort
& sorted
。
var mutableArray = [19, 7, 8, 45, 34]
mutableArray.sortInPlace() // error : 'sortInPlace()' has been renamed to 'sort()'
mutableArray.sort() //
print(mutableArray) // [7, 8, 19, 34, 45]
mutableArray.sorted()
print(mutableArray) // [19, 7, 8, 45, 34]
let anotherArray = mutableArray.sorted()
print(anotherArray) // [7, 8, 19, 34, 45]
如果您想使用变异函数的sortInPlace
或sort
,则数组必须为var
,否则您可能会出现误导性错误:
'sort()'已重命名为'sorted()'