我正在完成“编程Elixir”,我遇到了题为“练习:功能2”的练习。长话短说,基本上编码一个函数,如果前两个参数为0则发出Fizzbuzz,如果第一个参数为0则为Fizz,如果第二个参数为0则为Buzz,如果前两个参数均为零则为第三个参数。我想出了这个:
fizzbuzztest = fn
{0,0,_} -> "FizzBuzz"
{0,_,_} -> "Fizz"
{_,0,_} -> "Buzz"
{_,_,v} -> "#{v}"
end
这样称呼:
fizzbuzztest.({0,0,8}) # "FizzBuzz"
但我想知道 - 有什么方法可以做到这一点,而不必参数?似乎应该有一些方法来传递三个参数并处理模式匹配,但我还没有找到它。欢迎那些对Elixir更有经验的人提出建议。
答案 0 :(得分:5)
您可以使用以下方法解决此特定练习:
fizzbuzztest = fn
0,0,_ -> "FizzBuzz"
0,_,_ -> "Fizz"
_,0,_ -> "Buzz"
_,_,v -> "#{v}"
end