斯卡拉方式转换长ArrayByte
问题描述:
我想将长转换为数组字节。此代码块正在工作,但此解决方案是Java解决方案。我在斯卡拉寻找一个好的解决方案。我如何将Scala中的Long转换为数组字节?斯卡拉方式转换长ArrayByte
val arrayByteFromLong: Array[Byte] = ByteBuffer.allocate(8).putLong(myLong).array()
答
您可以利用scala.math.BigInt
:
import scala.math.BigInt
val arrayByteFromLong: Array[Byte] = BigInt(myLong).toByteArray
如果你也想垫数组8
Byte
是你可以做的(快速和肮脏的不那么有效的版本):
arrayByteFromLong.reverse.padTo(8,0).reverse
这对Scala来说也很好(我更喜欢Federico的回答)。一个例外是如果你正在寻找可以在Scala.js/Scala Native中工作的代码。 –