gpt4 book ai didi

Elixir - 如何使用不在最后位置的默认函数参数?

转载 作者:行者123 更新时间:2023-12-02 19:59:06 24 4
gpt4 key购买 nike

考虑这个简单的函数:

def myfun(first \\ :a, middle \\ :b, last \\ :c) do
{first, middle, last}
end

我想传递第一个和最后一个参数的函数特定值,并让它推断中间参数。我预计这样的事情可能会起作用:

{:foo, :b, :baz} = myfun(:foo, _, :baz)

但事实并非如此。

完成我想做的事情的正确方法是什么?

最佳答案

正如 Aleksei Matiushkin 在评论中提到的,当所有参数都是可选的时,使用关键字可能是更好的选择。它看起来像这样:

defmodule Fun do
def myfun(options \\ []) do
first = Keyword.get(options, :first, :a)
second = Keyword.get(options, :second, :b)
third = Keyword.get(options, :third, :c)

{first, second, third}
end
end

Fun.myfun(first: 1, third: 3) # => {1, :b, 3}
Fun.myfun(second: 2) # => {:a, 2, :c}
Fun.myfun() # => {:a, :b, :c}

关于Elixir - 如何使用不在最后位置的默认函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277142/

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