为什么显式缩小变量不会在kotlin中产生错误
我有一个变量a,它的类型是Int,当我把它转换成Byte时,它只是用相应类型的min和max值循环为什么显式缩小变量不会在kotlin中产生错误,kotlin,Kotlin,我有一个变量a,它的类型是Int,当我把它转换成Byte时,它只是用相应类型的min和max值循环 fun main(){ var a : Int = -130 println("hello kotlin ${a.toByte()}") } output :- hello kotlin 126 这将给出一个错误的值。那么,为什么kotlin没有给出错误呢?Int.toByte的行为是: 对于-130十六进制值ffffff 7E的Int值,它是126十六进制值7
fun main(){
var a : Int = -130
println("hello kotlin ${a.toByte()}")
}
output :-
hello kotlin 126
这将给出一个错误的值。那么,为什么kotlin没有给出错误呢?Int.toByte的行为是:
对于-130十六进制值ffffff 7E的Int值,它是126十六进制值7E。Int.toByte的行为是:
对于-130十六进制值FFFFFF7E的Int值,它是126十六进制值7E。该文档在哪里?我添加了一个链接,指向我的答案单击documented@VikasAcharya注意这与Java是一致的:字节b=byte-130将为您提供b==126。事实上,如果这就是在JVM上运行时所使用的代码,我也不会感到惊讶。那个文档在哪里?我添加了一个链接,指向我的答案单击documented@VikasAcharya注意这与Java是一致的:字节b=byte-130将为您提供b==126。事实上,如果这就是在JVM上运行时所使用的代码(即强制转换),我也不会感到惊讶。
The resulting Byte value is represented by the least significant 8 bits of this Int value.