swift 2中sort和sortInPlace之间的区别?

时间:2015-11-07 07:10:05

标签: swift swift2

我一直在尝试在swift中使用sortInPlace函数,但它无法正常工作。当我使用sort函数而不是sortinplace时,它可以工作。

请解释这两个功能之间的区别。如果您能提供演示两种功能使用的小代码示例,那将非常有用。

2 个答案:

答案 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]

如果您想使用变异函数的sortInPlacesort,则数组必须为var,否则您可能会出现误导性错误:

  

'sort()'已重命名为'sorted()'