gpt4 book ai didi

Elixir 将导入的函数重命名为别名

转载 作者:行者123 更新时间:2023-12-02 08:10:28 25 4
gpt4 key购买 nike

假设我正在像这样测试属于 Utils 模块的函数

defmodule Test do
alias Module.Utils

test "test 1" do
Utils.some_function?(...)
end

test "test 2" do
Utils.some_function?(...)
end
end

我可以将该功能重构或简化为:
import Utils.some_function as test_func()

所以我不必写模块名和简化函数名

最佳答案

导入时不能重命名函数。

您可以使用 defdelegate创建一个调用另一个模块函数的本地函数,如下所示:

defmodule A do
def just_add_these_two_numbers(a, b), do: a + b
end

defmodule B do
defdelegate add(a, b), to: A, as: :just_add_these_two_numbers
# `add/2` is now the same as `A.just_add_these_two_numbers/2`.

def test do
IO.inspect add(1, 2) == 3
end
end

B.test #=> true

尽管您也可以这样做(它甚至更短):
def add(a, b), do: A.just_add_these_two_numbers(a, b)

关于Elixir 将导入的函数重命名为别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47592388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com