我不确定如何使用类似于Swift的sorted(by :)的函数。我正在尝试使用Kotlin的sortedby()函数,但缺少某些内容。
测试是一个模型,测试是要排序的数组。
将代码快速移植到端口:
let sortedArray = tests.sorted(by: { (lhs, rhs) -> Bool in
let lhsDisplayName = self.getDisplayName(Test: lhs).capitalized
let rhsDisplayName = self.getDisplayName(Test: rhs).capitalized
return lhsDisplayName < rhsDisplayName })
答案 0 :(得分:2)
我想它应该像这样:
val tests = arrayOf("a", "B", "c", "d")
val sorted = tests.sortedBy { it -> getDisplayName(it).capitalize() }
答案 1 :(得分:2)
无需大写字符串,您可以使用String.CASE_INSENSITIVE_ORDER
:
val tests = arrayOf("c", "B", "a", "d")
val sorted = tests.sortedWith(String.CASE_INSENSITIVE_ORDER)
println(sorted) //[a, B, c, d]
根据您对getDisplayName(Test:)
函数的翻译方式,可以使用compareBy
,该函数采用可变数量的函数进行排序:
val sortedArray = tests.sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER, getDisplayName))