每一位有沒有更好的辦法來一個字節序列轉換成一個序列[布爾],其中每個元素代表的字節序列的位?如何在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