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

时间:2016-11-18 04:05:01

标签: elixir

在调用不接受参数的函数时,使用或省略括号的约定是什么?

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

# or

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

1 个答案:

答案 0 :(得分:2)

我相信,它上面还没有约定

  • Elixir编译器警告调用没有链外括号的函数。
  • 如果没有带有局部变量的括号,则存在覆盖方法调用的风险。

_

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
":("

魂斗罗

  • Credo代码分析工具默认会报告零括号函数调用。
  • Elixir代码本身似乎没有使用括号。
  • 美学。

结论

在我的拙见中,经验法则“在调用函数时使用括号”几乎没有什么优势,全局压制credo的守卫并不值得。我个人不使用它们,除非它提高了可读性。希望它有所帮助。