UIntID
UInt 不是 Number 的实现,因此 UIntID 并非 NumericalID 类型。 但是 UInt 会提供类似于 NumericalID 的一些数值转化类型,并且允许与 NumericalID 进行数值比较。
UIntID 与 IntID 是不同的,不要使用值可能为负的 IntID 来代替 UIntID。 UIntID 在进行 equals
和 compareTo
的时候,如果目标为数值类型且值为负, 则会直接将其判定为不相等或小数值。
举个明显的例子:
val ui = UInt.MAX_VALUE
val i = UInt.MAX_VALUE.toInt()
println(ui.toInt() == i) // true
println(ui == i.toUInt()) // true
println(ui.toInt() compareTo i) // 0
println(ui compareTo i.toUInt()) // 0
val uiID: ID = ui.ID
val iID: ID = i.ID
println(uiID == iID) // false
println(uiID compareTo iID) // 1
Content copied to clipboard
在JVM中,当仅作为数值而互相转化、比较时,ui
和 i
的实际数值是一样的, 而当它们各自作为 UIntID 和 IntID 时, 不论是 equals
还是 compareTo
的结果都表明它们是不同的。
Since
3.1.0
See also
Properties
Functions
Link copied to clipboard
将当前数字转为 Byte. 类似于 Number.toByte.
Link copied to clipboard
将当前数字转为 Char. 类似于 Number.toChar.
Link copied to clipboard
所有的ID都拥有转化为字符序列ID的能力。
Link copied to clipboard
将当前数字转为 Double. 类似于 Number.toDouble.
Link copied to clipboard
将当前数字转为 Float. 类似于 Number.toFloat.
Link copied to clipboard
将当前数字转为 Int. 类似于 Number.toInt.
Link copied to clipboard
将当前数字转为 Long. 类似于 Number.toLong.
Link copied to clipboard
将当前数字转为 Short. 类似于 Number.toShort.
Link copied to clipboard
尝试将当前ID转为一个 LongID.
Link copied to clipboard
尝试将当前ID转为一个 NumericalID。