gpt4 book ai didi

scala - 从范围初始化 scala BitSet

转载 作者:行者123 更新时间:2023-12-04 01:55:15 25 4
gpt4 key购买 nike

我想初始化一个 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]

关于scala - 从范围初始化 scala BitSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com