UIntID

data class UIntID(val number: UInt) : ID, NumberSimilarly(source)

使用 UInt 字面值的 ID 实现。

UInt 不是 Number 的实现,因此 UIntID 并非 NumericalID 类型。 但是 UInt 会提供类似于 NumericalID 的一些数值转化类型,并且允许与 NumericalID 进行数值比较。

UIntIDIntID不同的,不要使用值可能为负的 IntID 来代替 UIntIDUIntID 在进行 equalscompareTo 的时候,如果目标为数值类型且值为负, 则会直接将其判定为不相等或小数值。

举个明显的例子:

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

在JVM中,当仅作为数值而互相转化、比较时,uii 的实际数值是一样的, 而当它们各自作为 UIntIDIntID 时, 不论是 equals 还是 compareTo 的结果都表明它们是不同的。

Since

3.1.0

See also

Constructors

Link copied to clipboard
constructor(number: UInt)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

ID的字面值。等同于 ID.toString.

Link copied to clipboard

Functions

Link copied to clipboard
protected open fun clone(): Any
Link copied to clipboard
open operator override fun compareTo(other: ID): Int

ID之间应当是可以排序的。

Link copied to clipboard
protected open override fun doEquals(other: ID): Boolean
Link copied to clipboard
operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun toByte(): Byte

将当前数字转为 Byte. 类似于 Number.toByte.

Link copied to clipboard
open override fun toChar(): Char

将当前数字转为 Char. 类似于 Number.toChar.

Link copied to clipboard

所有的ID都拥有转化为字符序列ID的能力。

Link copied to clipboard
open override fun toDouble(): Double

将当前数字转为 Double. 类似于 Number.toDouble.

Link copied to clipboard
open override fun toFloat(): Float

将当前数字转为 Float. 类似于 Number.toFloat.

Link copied to clipboard
open override fun toInt(): Int

将当前数字转为 Int. 类似于 Number.toInt.

Link copied to clipboard
open override fun toLong(): Long

将当前数字转为 Long. 类似于 Number.toLong.

Link copied to clipboard
open override fun toShort(): Short

将当前数字转为 Short. 类似于 Number.toShort.

Link copied to clipboard

尝试将当前ID转化为一个 Long

Link copied to clipboard

尝试将当前ID转为一个 LongID.

Link copied to clipboard

尝试将当前ID转为一个 NumericalID