Cac*_*tus 3 literals switch-statement kotlin
我怎样才能打开一个Byte值?显而易见的方法是:
fun foo(b: Byte): Boolean {
return when(b) {
0 -> true
else -> false
}
}
Run Code Online (Sandbox Code Playgroud)
但是在编译时失败了
src/ByteSwitch.kt:3:5: error: incompatible types: kotlin.Int and kotlin.Byte
0 -> true
^
Run Code Online (Sandbox Code Playgroud)
有没有办法让它0成为字节文字?
由于Kotlin允许分支条件是任意表达式(不一定是常量),一种方法是接受0将是一个Int并简单地将它明确地转换为Byte:
fun foo(b: Byte): Boolean {
return when(b) {
0.toByte() -> true
else -> false
}
}
Run Code Online (Sandbox Code Playgroud)
Per Ilya," 0.toByte()在编译时进行评估,因此在运行时无需转换成本."
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |