val scoreSeq_opition: Seq[Option[String]] = List(Some("ngksf"),Some("fmgfdmg"),Some("mbmd"),None)
val nullOrdering: Ordering[Option[String]] = ????
如果上面的代碼,我想按 Ordering[Option[String]] 排序。在這種情況下,與標準不同,我們希望 None 列在 Some 之后,并且 Option[String] 應該按照 String 的正常排序順序。上次我們在 Score 中對字串進行排序,但這次我們只是對字串進行排序。
uj5u.com熱心網友回復:
因為Option[String]
它看起來像這樣:
implicit val ord: Ordering[Option[String]] =
Ordering.by(x => (x.isEmpty, x.getOrElse("")))
我假設這Score
只是一個型別別名,Option[String]
否則您需要Ordering[Score]
使用適當的規則創建一個。在這種情況下,排序可以在伴隨物件中,如果需要,編譯器會在其中找到它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/524173.html
標籤:斯卡拉