ULongID
ULong 不是 Number 的实现,因此 ULongID 并非 NumericalID 类型。 但是 ULong 会提供类似于 NumericalID 的一些数值转化类型,并且允许与 NumericalID 进行数值比较。
ULongID 与 LongID 是不同的,不要使用值可能为负的 LongID 来代替 ULongID。 ULongID 在进行 equals
和 compareTo
的时候,如果目标为数值类型且值为负, 则会直接将其判定为不相等或小数值。
举个明显的例子:
val ul = ULong.MAX_VALUE
val l = ULong.MAX_VALUE.toLong()
println(ul.toLong() == l) // true
println(ul == l.toULong()) // true
println(ul.toLong() compareTo l) // 0
println(ul compareTo l.toULong()) // 0
val ulID: ID = ul.ID
val lID: ID = l.ID
println(ulID == lID) // false
println(ulID compareTo lID) // 1
Content copied to clipboard
在JVM中,当仅作为数值而互相转化、比较时,ul
和 l
的实际数值是一样的, 而当它们各自作为 ULongID 和 LongID 时, 不论是 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。