Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Elixir中创建UUID_Elixir - Fatal编程技术网

在Elixir中创建UUID

在Elixir中创建UUID,elixir,Elixir,在Elixir中生成UUID的规范方法是什么?我应该使用图书馆还是有内置图书馆?我最好有更少的依赖项,做更多的工作,反之亦然,因此,如果我能在Elixir中生成一个外部依赖项,它会更好地使用它。如果你将Elixir与EXTO一起使用,你可以始终使用EXTO.UUID在Elixir中生成全局唯一引用的标准方法是使用 从: 返回几乎唯一的引用 返回的引用将在大约2^82次调用后重新出现;因此,对于实际目的来说,它是足够独特的 如果你不想在你的项目中包括外星生物,你应该进行评估 为什么需要生产

在Elixir中生成UUID的规范方法是什么?我应该使用图书馆还是有内置图书馆?我最好有更少的依赖项,做更多的工作,反之亦然,因此,如果我能在Elixir中生成一个外部依赖项,它会更好地使用它。

如果你将Elixir与EXTO一起使用,你可以始终使用EXTO.UUID

在Elixir中生成全局唯一引用的标准方法是使用

从:

返回几乎唯一的引用

返回的引用将在大约2^82次调用后重新出现;因此,对于实际目的来说,它是足够独特的


如果你不想在你的项目中包括外星生物,你应该进行评估


为什么需要生产UUID?如果您实际上不需要真正的UUID,则有更简单的内置方法为事物生成唯一的键/标识符。@BenDamman,它们是什么?
: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"