ios - 为什么我对 array.sorted( 的实现是 : ) in Swift returning a strange order?

标签 ios arrays swift sorting

我有一个自定义类:

class MyClass: MySuperClass
{
    var myNumber: Int

    required init ( id: Int, myNumber: Int )
    {
        self.myNumber = myNumber
        super.init( id: id )
    }

    required init ( id: Int )
    { 
        fatalError( "init() has not been implemented" ) 
    }
}

我创建了一个长度为 20 的对象数组:

var myNumbers: [ MyClass ] = []

我遍历数组,打印出 myNumber 的值:

0
1
1221
0
0
18394
0
0
0
0
0
1222
6
0
110
0
0
24
71
2

然后我对它们进行排序:

myNumbers.sorted( by: { $0.myNumber < $1.myNumber } )

然后我第二次遍历数组,打印出 myNumber 的值:

0
0
0
0
0
0
0
0
0
0
0
2
1
6
24
71
110
1222
1221
18394

如您所见,它有点对它们进行了排序,但不是很令人满意。

请问我做错了什么?提前谢谢你。

最佳答案

你想要.sortInPlace我相信..

myNumbers.sortInPlace( by: { $0.myNumber < $1.myNumber } )

/// Sort `self` in-place according to `isOrderedBefore`.
///
/// The sorting algorithm is not stable (can change the relative order of
/// elements for which `isOrderedBefore` does not establish an order).
///
/// - Requires: `isOrderedBefore` is a
///   [strict weak ordering](http://en.wikipedia.org/wiki/Strict_weak_order#Strict_weak_orderings)
///   over the elements in `self`.

关于ios - 为什么我对 array.sorted( 的实现是 : ) in Swift returning a strange order?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41023416/

相关文章:

Swift iOS TextView 居中并右对齐某些文本

ios - 使用 Segue,如何在不同的 View Controller 中控制 View 的可见性?

ios - 保存 CLLocation 错误 : Mutating method sent to immutable object

ios - 没有从 FBLoginView 调用 loginViewShowingLoggedInUser

arrays - 如何在 Julia 中将函数应用于其中包含数组的数据帧?

ios - 在 pickerView 中选择的值后显示文本

iphone - TextField验证

php - iOS 应用程序和用户身份验证。授权?

javascript - 在javascript中用 "!"(感叹号)为数组中的所有字符串添加前缀的最简单方法是什么?

arrays - 带有数组的 Swift nil 合并运算符