ULongID

data class ULongID(val number: ULong) : ID, NumberSimilarly(source)

使用 ULong 字面值的 ID 实现。

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

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

举个明显的例子:

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

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

Since

3.1.0

See also

Constructors

Link copied to clipboard
constructor(number: ULong)

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