在MongoDB驱动程序的包中,我需要一个函数来生成唯一的文档ID.
此函数使用:erlang.now()v18中不推荐使用的函数
我寻求如何迁移的帮助,但没有成功.
我的实际代码(缩短):
defmodule MyModule_v17 do
use Bitwise, only_operators: true
def gen_trans_prefix do
{gs, s, ms} = :erlang.now
(gs * 1000000000000 + s * 1000000 + ms) &&& 281474976710655
end
end
Run Code Online (Sandbox Code Playgroud)
最好的我提出来:
defmodule MyModule_v18 do
use Bitwise, only_operators: true
Kernel.if Keyword.get(:erlang.module_info, :exports) |> Enum.any?(fn({:system_time, 1}) -> true; (_) -> false end) do
def gen_trans_prefix do
:erlang.system_time(:micro_seconds) &&& 281474976710655
end
else
def gen_trans_prefix do
{gs, s, ms} = :erlang.now
(gs * 1000000000000 + s * 1000000 …Run Code Online (Sandbox Code Playgroud) elixir ×1