Swift 带谓词的自定义排序顺序

Swift 带谓词的自定义排序顺序,swift,Swift,我有一个数组 arr=[“A”、“B”、“A”、“B”、“1”、“2”] 当我使用以下方法对其进行排序时: arr.sorted(by: <) arr.sorted(by:我可能错了,但我认为您需要实现自己的自定义排序方法: var arr = ["A", "B", "a", "b", "1", "2"] arr.sort { if $0.first?.isLowercase == true && ($1.first?.isUppercase == true ||

我有一个数组

arr=[“A”、“B”、“A”、“B”、“1”、“2”]

当我使用以下方法对其进行排序时:

arr.sorted(by: <)

arr.sorted(by:我可能错了,但我认为您需要实现自己的自定义排序方法:

var arr = ["A", "B", "a", "b", "1", "2"]
arr.sort {
    if $0.first?.isLowercase == true && ($1.first?.isUppercase == true || $1.first?.isWholeNumber == true) {
        return true
    }
    if $0.first?.isUppercase == true && $1.first?.isWholeNumber == true {
        return true
    }
    if $0.first?.isWholeNumber == true && ($1.first?.isLowercase == true ||  $1.first?.isUppercase == true) {
        return false
    }
    return $0 < $1
}

print(arr) // "["a", "b", "A", "B", "1", "2"]\n"

我可能错了,但我认为您需要实现自己的自定义排序方法:

var arr = ["A", "B", "a", "b", "1", "2"]
arr.sort {
    if $0.first?.isLowercase == true && ($1.first?.isUppercase == true || $1.first?.isWholeNumber == true) {
        return true
    }
    if $0.first?.isUppercase == true && $1.first?.isWholeNumber == true {
        return true
    }
    if $0.first?.isWholeNumber == true && ($1.first?.isLowercase == true ||  $1.first?.isUppercase == true) {
        return false
    }
    return $0 < $1
}

print(arr) // "["a", "b", "A", "B", "1", "2"]\n"

谢谢你详细的回答。太完美了。谢谢你详细的回答。太完美了。
var array =  ["B","A","b", "a", "1", "2"]
do {
    try array.customSort()
    print(array) // "["a", "b", "A", "B", "1", "2"]\n"
} catch {
    print(error)
}