UUIDs

UUIDs.uuid1Function
uuid1([rng::AbstractRNG]) -> UUID

生成一个版本 1(基于时间)的全局唯一标识符(UUID),如 RFC 4122 所规定。请注意,节点 ID 是随机生成的(不识别主机),根据 RFC 的第 4.5 节。

uuid1 使用的默认 rng 不是 Random.default_rng(),每次调用 uuid1() 而不带参数时,应该预期返回一个唯一标识符。重要的是,即使在调用 Random.seed!(seed) 时,uuid1 的输出也不会重复。目前(截至 Julia 1.6),uuid1 使用 Random.RandomDevice 作为默认 rng。然而,这是一项可能在未来更改的实现细节。

Julia 1.6

截至 Julia 1.6,uuid1 的输出不依赖于 Random.default_rng()

示例

julia> using Random

julia> rng = MersenneTwister(1234);

julia> uuid1(rng)
UUID("cfc395e8-590f-11e8-1f13-43a2532b2fa8")
source
UUIDs.uuid4Function
uuid4([rng::AbstractRNG]) -> UUID

生成一个版本 4(随机或伪随机)全局唯一标识符(UUID),如 RFC 4122 所规定。

uuid4 使用的默认 rng 不是 Random.default_rng(),并且每次调用 uuid4() 而不带参数时都应返回一个唯一标识符。重要的是,即使在调用 Random.seed!(seed) 时,uuid4 的输出也不会重复。目前(截至 Julia 1.6),uuid4 使用 Random.RandomDevice 作为默认 rng。然而,这是一项可能在未来更改的实现细节。

Julia 1.6

截至 Julia 1.6,uuid4 的输出不依赖于 Random.default_rng()

示例

julia> using Random

julia> rng = Xoshiro(123);

julia> uuid4(rng)
UUID("856e446e-0c6a-472a-9638-f7b8557cd282")
source
UUIDs.uuid5Function
uuid5(ns::UUID, name::String) -> UUID

生成一个版本 5(基于命名空间和域)的全局唯一标识符(UUID),如 RFC 4122 所规定。

Julia 1.1

此函数至少需要 Julia 1.1。

示例

julia> using Random

julia> rng = Xoshiro(123);

julia> u4 = uuid4(rng)
UUID("856e446e-0c6a-472a-9638-f7b8557cd282")

julia> u5 = uuid5(u4, "julia")
UUID("2df91e3f-da06-5362-a6fe-03772f2e14c9")
source
UUIDs.uuid_versionFunction
uuid_version(u::UUID) -> Int

检查给定的 UUID 并返回其版本(参见 RFC 4122)。

示例

julia> uuid_version(uuid4())
4
source