我正在通过"编程elixir"工作,我遇到了练习为"练习:函数2"。长故事简短,基本上是编码一个函数,如果前两个参数为0,则会发出fizzbuzz,如果第一个参数为0,则响起,如果第二个参数为0,则嗡嗡声如果前两个都不是零,则嗡嗡声。我想到了:
fizzbuzztest = fn
{0,0,_} -> "FizzBuzz"
{0,_,_} -> "Fizz"
{_,0,_} -> "Buzz"
{_,_,v} -> "#{v}"
end
这样称呼:
fizzbuzztest.({0,0,8}) # "FizzBuzz"
但是我想知道 - 有什么方法可以做到这一点,而不必累计参数?似乎应该有某种方法可以通过三个论点并进行模式匹配,但我还没有找到它。欢迎使用更经验丰富的人的任何建议。
您可以使用以下方式解决此特定练习:
fizzbuzztest = fn
0,0,_ -> "FizzBuzz"
0,_,_ -> "Fizz"
_,0,_ -> "Buzz"
_,_,v -> "#{v}"
end