首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala collection.breakOut不适用于案例类吗?

Scala collection.breakOut不适用于案例类吗?
EN

Stack Overflow用户
提问于 2014-10-04 08:27:53
回答 1查看 201关注 0票数 1

我试图将输入数据解析为TreeSet中的case类,但它似乎不起作用。

代码语言:javascript
复制
case class Block(letter: Char)
// This does not compile
val brokenBlocks: collection.immutable.TreeSet[Block] = "A B C".split(' ').map(letter => Block(letter(0)))(collection.breakOut)
// Although this compiles
val workingBlocks: collection.immutable.TreeSet[Int] = "A B C".split(' ').map(letter => letter(0).asDigit)(collection.breakOut)

编译错误:

代码语言:javascript
复制
type mismatch;  found   : scala.collection.generic.CanBuildFrom[Any,Char,String]
required: scala.collection.generic.CanBuildFrom[Array[String],Block,scala.collection.immutable.TreeSet[Block]]

我正在scala工作表中尝试这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-04 10:29:47

与案例类没有任何关系。如果您试图构建一个列表或向量,它就会工作得很好。

TreeSet需要对其元素的类型进行排序。有一个关于国际,但没有在布洛克。

如果您添加了一个,比如在同伴对象中。

代码语言:javascript
复制
object Block {
   implicit val ordering: Ordering[Block] = Ordering.by(_.letter)
}

那就成功了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26191060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档