从范围初始化scala BitSet
发布时间:2020-12-16 18:57:01 所属栏目:安全 来源:网络整理
导读:我想初始化一个 scala BitSet以包含从1到N的整数.以下将工作,但我正在寻找一个更好的解决方案: var s = BitSet.empty ++ (1 to n) 我希望我可以做这样的事情: var s:BitSet = (1 to n).toSet …但是会导致错误: error: polymorphic expression cannot be
我想初始化一个
scala BitSet以包含从1到N的整数.以下将工作,但我正在寻找一个更好的解决方案:
var s = BitSet.empty ++ (1 to n) 我希望我可以做这样的事情: var s:BitSet = (1 to n).toSet …但是会导致错误: error: polymorphic expression cannot be instantiated to expected type; found : [B >: Int]scala.collection.immutable.Set[B] required: scala.collection.immutable.BitSet 我错过了什么吗? 解决方法
这是什么breakOut是:
val s: BitSet = (1 to n).map(identity)(breakOut) 请参见this question了解breakOut的内部工作. 另一个解决方案是使用BitSet的构造函数: val s = BitSet((1 to n): _*) :_ *告诉编译器您要使用Range作为重复参数. 因为breakOut看起来很丑,你可以使用pimp-my-library模式来生成更好的代码(如here所述): val s = (1 to n).to[BitSet] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |