我想在 Scala 中编写一个类,它需要像这样的任意数量的字节或布尔值
class Bytes(data: Byte*) {
def this(data: Boolean*) = this {
val res: Array[Byte] = convBools2Bytes(data)
res: _*
}
// […]
}
whereconvBools2Bytes
是将 an 转换Array[Boolean]
为 an的函数Array[Byte]
:
def convBools2Bytes(data: Array[Boolean]): Array[Byte]
这给了我以下编译器错误:
[error] Bytes.scala:5: no `: _*' annotation allowed here
[error] (such annotations are only allowed in arguments to *-parameters)
[error] res: _*
[error] ^
据我了解,该res: _*
语句将Array[Byte]
转换为重复参数列表(如“Scala 编程”第 2 版第 8.8 节中所述)。
为什么会出现这样的错误,我该如何避免呢?