每一位有没有更好的办法来一个字节序列转换成一个序列[布尔],其中每个元素代表的字节序列的位?如何在SEQ(字节)转换为数组[布尔]表示斯卡拉
我正在这样做,但byte2Bools似乎有点过于沉重...
object Main extends App {
private def byte2Bools(b: Byte) =
(0 to 7).foldLeft(ArrayBuffer[Boolean]())((bs, i) => bs += isBitSet(b, i))
private def isBitSet(byte: Byte, bit: Int) =
((byte >> bit) & 1) == 1
val bytes = List[Byte](1, 2, 3)
val bools = bytes.flatMap(b => byte2Bools(b))
println(bools)
}
也许真正的问题是:什么是更好地实施byte2Bools的?
我让它变得可变,以削减每一步创建新集合的开销......至于你的第二点:DOH!是的,这似乎是明显的方法不是。我是新来的Scala和函数式编程。我经常发现自己为了自己的利益而努力过于棘手。 – 2013-04-28 21:34:17
有关[FP in scala](http://www.manning.com/bjarnason/)的很棒的书。你一定要检查一下。 – 4e6 2013-04-29 05:27:08