【问题标题】:Elixir function /number syntaxElixir 函数 /number 语法
【发布时间】:2017-04-19 16:22:03
【问题描述】:

Elixir 新手,试图理解这种语法的含义:

MyApplication.Module.function/2

函数后面的数字代表什么?

【问题讨论】:

    标签: function elixir


    【解决方案1】:

    数字代表函数的数量。当您要将命名函数传递给将函数作为参数的函数时,使用此语法。对于像

    这样的东西真的很方便
    "1 2 3" |> String.split(" ") |> Enum.map(&String.to_integer/1)
    

    【讨论】:

    • 补充说明:“arity”的意思是“函数接受的参数数量”。
    【解决方案2】:

    在 Elixir 和 Erlang 中,函数可以有多个主体子句(与 C++、Java 等不同),所以为了区分我们使用 arity,它只是 参数的数量.

    例如:

    defmodule Math do
    
      def sum(x) do
        x + 0
      end
    
      def sum(x, y) do
        x + y
      end
    end
    

    所以在这里你有两个相似但不同的函数:sum/1sum/2

    您经常会看到内部使用具有大量参数的函数来计算结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      相关资源
      最近更新 更多