如何使用ByteArray.getOrElse

时间:2018-01-02 09:45:21

标签: kotlin

我不承诺如何指定`ByteArray.getOrElse()函数的默认值。

我试过了:

myInt = dat.getOrElse(0, 0).toInt()

但编译器抱怨以下错误:

The integer literal does not conform to the expected type (Int) -> Byte

如何指定默认值?

2 个答案:

答案 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 })