最近我遇到了这样一种情况,使用无符号整数将非常有用(例如,任何负值都没有意义等)。令人惊讶的是,我发现 Kotlin 不支持无符号整数 - 而且似乎也没有其他关于为什么不支持的信息(尽管我已经搜索过了)。
我错过了什么吗?
最近我遇到了这样一种情况,使用无符号整数将非常有用(例如,任何负值都没有意义等)。令人惊讶的是,我发现 Kotlin 不支持无符号整数 - 而且似乎也没有其他关于为什么不支持的信息(尽管我已经搜索过了)。
我错过了什么吗?
Byte
、Short
、Int
和Long
的无符号类型在 Kotlin 1.3 Beta 中已经存在,稳定于 Kotlin 1.5:
来自 docs:
kotlin.UByte
: 无符号 8 位整数,范围从 0 到 255
kotlin.UShort
: 无符号 16 位整数,范围从 0 到 65535
kotlin.UInt
: 无符号 32 位整数,范围从 0 到 2^32 - 1
kotlin.ULong
: 无符号 64 位整数,范围从 0 到 2^64 - 1
用法
// You can define unsigned types using literal suffixes
val uint = 42u
// You can convert signed types to unsigned and vice versa via stdlib extensions:
val int = uint.toInt()
val uint = int.toUInt()
Unsigned
类来解决问题,但可能会遇到几个问题。 - Vivick