【发布时间】:2015-03-13 17:36:33
【问题描述】:
定义函数子句时应该有多严格?
Elixir 允许在 no guards 超过 检查类型 到 验证范围内的值 范围内编写函数头。
例如,我不知道在这样的函数中使用什么样式:
def measure(args = %{times: times, path: path}) do ...
def measure(args = %{times: times, path: path}) when is_integer(times) and is_binary(path) do ...
def measure(args = %{times: times, path: path}) when is_integer(times) and times > 0 and is_binary(path) ...
在检查许多情况时,这当然是一个问题:队伍太长,并且为守卫增加一条线路对我来说似乎不是一个好主意。这使得区分实际代码和函数头变得更加困难......
对于我的函数定义的严格性,您有什么建议?
【问题讨论】:
-
这是一个相当广泛的问题。投票结束。
-
我知道这个问题没有明确的答案,但我希望有人知道关于这个主题的好文章或类似文章。将标记为已解决。
-
“这个问题没有明确的答案” - - 我可以谦虚地建议您阅读该网站的常见问题解答
标签: elixir