Ono*_*cci 3 elixir pattern-matching
我正在通过"编程Elixir"工作,我遇到了题为"练习:功能2"的练习.长话短说,基本上编码一个函数,如果前两个参数为0则发出Fizzbuzz,如果第一个参数为0则为Fizz,如果第二个参数为0则为Buzz,如果前两个参数均为零则为第三个参数.我想出了这个:
fizzbuzztest = fn
{0,0,_} -> "FizzBuzz"
{0,_,_} -> "Fizz"
{_,0,_} -> "Buzz"
{_,_,v} -> "#{v}"
end
Run Code Online (Sandbox Code Playgroud)
这样称呼:
fizzbuzztest.({0,0,8}) # "FizzBuzz"
Run Code Online (Sandbox Code Playgroud)
但我想知道 - 是否有一些方法可以做到这一点,而无需参数元组?似乎应该有一些方法来传递三个参数并处理模式匹配,但我还没有找到它.欢迎那些对Elixir更有经验的人提出任何建议.
您可以使用以下方法解决此特定练习
fizzbuzztest = fn
0,0,_ -> "FizzBuzz"
0,_,_ -> "Fizz"
_,0,_ -> "Buzz"
_,_,v -> "#{v}"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |