cats中是否有将Set
其转换为的标准扩展方法Option[cats.data.NonEmptySet]
?
不是为了scala.collection.immutable.Set
,而是为了SortedSet
:
scala> import cats.syntax.set._
import cats.syntax.set._
scala> import scala.collection.immutable.SortedSet
import scala.collection.immutable.SortedSet
scala> SortedSet(1, 2, 3).toNes
res0: Option[cats.data.NonEmptySet[Int]] = Some(TreeSet(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)
您当然可以转换一个普通的Set
:
scala> Set(1, 2, 3).to[SortedSet].toNes
res1: Option[cats.data.NonEmptySet[Int]] = Some(TreeSet(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)
Cats的NonEmptySet
构建不是基于Set
(并且Cats不提供的语法Set
),因为它Set
依赖于通用相等性来确定什么才算为其元素的唯一性。SortedSet
另一方面,需要一个scala.math.Ordering
实例,这使其更符合Cats中遵循的设计原则(例如,请参阅此问题以获取更多讨论)。
归档时间: |
|
查看次数: |
157 次 |
最近记录: |