我有一个函数,大致如下。
然而,这会导致一个错误。
def test(options \\ []) do
# Fun stuff happens here :)
end
它接受多个(可选的)关键字参数,包括do:
。我希望能够像这样调用它。
test foo: 1 do
"Hello"
end
然而,这会导致一个错误。
** (UndefinedFunctionError) function Example.test/2 is undefined or private. Did you mean one of:
* test/0
* test/1
Example.test([foo: 1], [do: "Hello"])
(elixir) lib/code.ex:376: Code.require_file/2
从错误中可以看出,上面的语法被解析为两个独立的关键字列表。现在,我可以使用以下有些不方便的语法来调用此函数:
Example.test foo: 1, do: (
"Hello"
)
但是在一个函数调用中,是否有一种方法可以提供do
块以及其他关键字参数?