Elixir 使用()调用没有参数的函数

Elixir 使用()调用没有参数的函数,elixir,Elixir,调用不接受任何参数的函数时,使用或匹配括号的约定是什么 function1(aaa) |> function2() |> function3() |> function4(bbb) # or function1(aaa) |> function2 |> function3 |> function4(bbb) 我认为,在这方面还没有公约 赞成 Elixir编译器警告调用链外没有括号的函数 使用局部变量重写不带括号的方法调用存在风险 _ 对立面 默认情

调用不接受任何参数的函数时,使用或匹配括号的约定是什么

function1(aaa) |> function2() |> function3() |> function4(bbb)

# or

function1(aaa) |> function2 |> function3 |> function4(bbb)
我认为,在这方面还没有公约

赞成
  • Elixir
    编译器警告调用链外没有括号的函数
  • 使用局部变量重写不带括号的方法调用存在风险
_

对立面
  • 默认情况下,代码分析工具将报告带括号的零arity函数调用
  • Elixir
    代码本身似乎不使用括号
  • 美学
结论
依我拙见,“调用函数时使用括号”的经验法则几乎没有什么好处,而且对
信条的全局抑制也不值得。我个人不使用它们,除非它提高了可读性。希望能有帮助。

如果算术数大于1,则不明确,但如果不是,我不确定是否有问题。@Andrewi,什么是约定我可能会补充一点想法——调用一个没有参数的函数()会让它更明显地表明它是一个函数而不是一个值。另一方面,因为这是长生不老药——不管怎样,函数和值都不太重要。
defmodule A do
  def a, do: "¡Yay!"
  def b1, do: IO.puts a
  def b2 do
    a = ":("
    # 100 LOCs
    IO.puts a
  end
end

iex> A.b1
"¡Yay!"
iex> A.b2
":("