UUIDs

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

RFC 4122で指定されたバージョン1(時間ベース)のユニバーサルユニーク識別子(UUID)を生成します。ノードIDはRFCのセクション4.5に従ってランダムに生成されるため、ホストを特定するものではありません。

uuid1で使用されるデフォルトのrngはRandom.default_rng()ではなく、引数なしでuuid1()を呼び出すたびにユニークな識別子が返されることが期待されます。重要なことに、uuid1の出力は、Random.seed!(seed)が呼ばれても繰り返されることはありません。現在(Julia 1.6時点)、uuid1はデフォルトのrngとしてRandom.RandomDeviceを使用しています。ただし、これは将来的に変更される可能性のある実装の詳細です。

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

RFC 4122で指定されたバージョン4(ランダムまたは擬似ランダム)のユニバーサルユニーク識別子(UUID)を生成します。

uuid4で使用されるデフォルトのrngはRandom.default_rng()ではなく、引数なしでuuid4()を呼び出すたびにユニークな識別子が返されることが期待されます。重要なことに、uuid4の出力は、Random.seed!(seed)が呼び出されても繰り返されることはありません。現在(Julia 1.6時点)、uuid4はデフォルトのrngとしてRandom.RandomDeviceを使用しています。ただし、これは将来的に変更される可能性のある実装の詳細です。

Julia 1.6

uuid4の出力は、Julia 1.6時点で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

RFC 4122で指定されたように、バージョン5(名前空間およびドメインベース)のユニバーサルユニーク識別子(UUID)を生成します。

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