在Elixir中创建UUID
在Elixir中生成UUID的规范方法是什么?我应该使用图书馆还是有内置图书馆?我最好有更少的依赖项,做更多的工作,反之亦然,因此,如果我能在Elixir中生成一个外部依赖项,它会更好地使用它。如果你将Elixir与EXTO一起使用,你可以始终使用EXTO.UUID在Elixir中生成全局唯一引用的标准方法是使用 从: 返回几乎唯一的引用 返回的引用将在大约2^82次调用后重新出现;因此,对于实际目的来说,它是足够独特的在Elixir中创建UUID,elixir,Elixir,在Elixir中生成UUID的规范方法是什么?我应该使用图书馆还是有内置图书馆?我最好有更少的依赖项,做更多的工作,反之亦然,因此,如果我能在Elixir中生成一个外部依赖项,它会更好地使用它。如果你将Elixir与EXTO一起使用,你可以始终使用EXTO.UUID在Elixir中生成全局唯一引用的标准方法是使用 从: 返回几乎唯一的引用 返回的引用将在大约2^82次调用后重新出现;因此,对于实际目的来说,它是足够独特的 如果你不想在你的项目中包括外星生物,你应该进行评估 为什么需要生产
如果你不想在你的项目中包括外星生物,你应该进行评估
:rand.uniform()
Integer.to_字符串(:rand.uniform(4294967296),32)Integer.to_字符串(:rand.uniform(4294967296),32)
将在base64中为您提供一个64位随机标识符(不要从rand.uniform中获取超过32位左右-因此,如果您需要完整的128位,请执行四次调用并将它们串在一起)(不知道为什么我不能编辑我自己的评论,但这里有一个128位的版本应该可以很好地工作:(:rand.uniform(4294967296)@cdegroot,thx。不是每个Elixir项目都使用DB和Ecto mate。
import Ecto
uuid = Ecto.UUID.generate
defp deps do
[ { :elixir_uuid, "~> 1.2" } ]
end
iex> UUID.uuid1()
"5976423a-ee35-11e3-8569-14109ff1a304"
iex> UUID.uuid3(:dns, "my.domain.com")
"03bf0706-b7e9-33b8-aee5-c6142a816478"
iex> UUID.uuid3("5976423a-ee35-11e3-8569-14109ff1a304", "my.domain.com")
"0609d667-944c-3c2d-9d09-18af5c58c8fb"