【发布时间】:2020-12-20 01:08:16
【问题描述】:
我有一个定义如下的结构:我希望该结构按升序排序。
struct Share
{
let firstColumn: String
let secondColumn: String
let thirdcolumn: String
let FourthColumn: String
init(firstColumn: String, secondColumn: String, thirdcolumn: String, FourthColumn:
String = "")
{
self.firstColumn = firstColumn
self.secondColumn = secondColumn
self.thirdcolumn = thirdcolumn
self.FourthColumn = FourthColumn
}
}
所有列都是类型转换为字符串的数字。我要做的就是按 firstColumn 对结构进行排序。
我在下面调用这个函数:
shares.sort(by:{ $0.firstColumn < $1.firstColumn })
但它不会对结构属性进行排序。
【问题讨论】:
-
“份额”从何而来?
-
我创建的结构共享称为共享
-
它将
firstColumn排序为String。 -
如果您可以在结构中将类型更改为 Double,请这样做,否则请尝试
shares.sort(by:{ Double($0.firstColumn) ?? 0 < Double($1.firstColumn) ?? 0 }) -
按
String排序不起作用,因为1000.0按字典顺序排在12.0之前。