我不承诺如何指定`ByteArray.getOrElse()函数的默认值。
我试过了:
myInt = dat.getOrElse(0, 0).toInt()
但编译器抱怨以下错误:
The integer literal does not conform to the expected type (Int) -> Byte
如何指定默认值?
答案 0 :(得分:2)
第二个参数(defaultValue
)的预期类型是(Int) -> Byte
,它是一个lambda,它接受Int
并返回Byte
。
myInt = dat.getOrElse(index = 100, defaultValue = {
i ->
// use i to calcuate your Byte that should be returned...
// or return a fixed value
i * 1 // for example
})
getOrElse
的签名:
fun ByteArray.getOrElse(
index: Int,
defaultValue: (Int) -> Byte
): Byte
答案 1 :(得分:1)
第二个参数是函数文字
myInt = dat.getOrElse(100, { /** what is there is no element 100*/ 0 })