如何修复 Swift 排序函数错误?
How Do I fix the Swift Sort function error?
我有 Swift1 本书,但我有 Xcode 7。所以我正在根据 Swift1 本书编写 Swift2 代码。我目前正在学习 Swift 闭包,但以下代码会产生错误。
import Cocoa
let names = ["Chris","Alex","Ewa","Barry","Daniella"]
func backwards(s1: String, s2: String) -> Bool {
return s1 > s2
}
print("Unsort names: \(names)")
var reversed = sort(names, backwards)
print("sort names: \(reversed)")
这是错误:
Playground execution failed: /var/folders/kt/t3wp7ckx3h1c33tfm44r4zgr0000gn/T/./lldb/1968/playground150.swift:11:16:
error: cannot invoke 'sort' with an argument list of type '([String], (String, s2: String) -> Bool)'
var reversed = sort(names, backwards)
^
/var/folders/kt/t3wp7ckx3h1c33tfm44r4zgr0000gn/T/./lldb/1968/playground150.swift:11:16:
note: overloads for 'sort' exist with these partially matching parameter lists: (inout C, (C.Generator.Element, C.Generator.Element) -> Bool), (inout [T], (T, T) -> Bool), (inout ContiguousArray<T>, (T, T) -> Bool)
var reversed = sort(names, backwards)
您必须对数组对象应用排序函数
var reversed = names.sort(backwards)
下面是我游乐场的截图
我有 Swift1 本书,但我有 Xcode 7。所以我正在根据 Swift1 本书编写 Swift2 代码。我目前正在学习 Swift 闭包,但以下代码会产生错误。
import Cocoa
let names = ["Chris","Alex","Ewa","Barry","Daniella"]
func backwards(s1: String, s2: String) -> Bool {
return s1 > s2
}
print("Unsort names: \(names)")
var reversed = sort(names, backwards)
print("sort names: \(reversed)")
这是错误:
Playground execution failed: /var/folders/kt/t3wp7ckx3h1c33tfm44r4zgr0000gn/T/./lldb/1968/playground150.swift:11:16:
error: cannot invoke 'sort' with an argument list of type '([String], (String, s2: String) -> Bool)'
var reversed = sort(names, backwards)
^
/var/folders/kt/t3wp7ckx3h1c33tfm44r4zgr0000gn/T/./lldb/1968/playground150.swift:11:16:
note: overloads for 'sort' exist with these partially matching parameter lists: (inout C, (C.Generator.Element, C.Generator.Element) -> Bool), (inout [T], (T, T) -> Bool), (inout ContiguousArray<T>, (T, T) -> Bool)
var reversed = sort(names, backwards)
您必须对数组对象应用排序函数
var reversed = names.sort(backwards)
下面是我游乐场的截图