作者:V体验_数码IT | 来源:互联网 | 2023-05-19 13:49
我是新的Elixir,非常享受它.当我尝试使用同名函数时,我碰壁了.这是一个例子
defmodule ChangeName do
def convert(:captilize, name), do: String.capitalize(name)
def convert(:lower, name), do: String.downcase(name)
end
我正在使用iex和ChangeName.convert.captilize的基本调用但是如何运行这些函数?
谢谢
1> Paweł Obrok..:
您提供的示例未定义具有相同名称的两个函数,而是单个多重函数.它大致相当于:
defmodule ChangeName do
def convert(conversion, name) do
case conversion do
:capitalize -> String.capitalize(name)
:lower -> String.downcase(name)
end
end
end
因此被称为:
ChangeName.convert(:capitalize, "john")
ChangeName.convert(:lower, "JOHN")
实际上在Erlang中,不可能定义两个具有相同名称和arity的函数.