Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何定义具有未使用参数的elixir函数的规范?_Elixir - Fatal编程技术网

如何定义具有未使用参数的elixir函数的规范?

如何定义具有未使用参数的elixir函数的规范?,elixir,Elixir,即使参数未在函数体中使用,我是否可以用这种方式定义函数参数的类型?是的,您可以这样做,并且在语法上是有效的。@spec属性应包含在一个位置收集的所有预期输入和输出。在这种情况下,您是在对透析器(并隐式地对代码的读取器)说,此函数将只接受字符串 问题是你为什么要这么做?如果不需要这些参数,为什么要接受它们?如果这是最后一个子句,则一切正常,因为该函数还有其他定义,它们只接受字符串,因此@spec是有效的。如果允许任何参数,则可以在定义中使用typeany() @spec another(Strin

即使参数未在函数体中使用,我是否可以用这种方式定义函数参数的类型?

是的,您可以这样做,并且在语法上是有效的。
@spec
属性应包含在一个位置收集的所有预期输入和输出。在这种情况下,您是在对
透析器
(并隐式地对代码的读取器)说,此函数将只接受字符串


问题是你为什么要这么做?如果不需要这些参数,为什么要接受它们?如果这是最后一个子句,则一切正常,因为该函数还有其他定义,它们只接受字符串,因此
@spec
是有效的。

如果允许任何参数,则可以在定义中使用type
any()

@spec another(String.t, String.t) :: String.t 
def another(_para1, _para2) do
  IO.puts "this is a test"
end

是的,这对你不管用吗?
@spec another(any(), any()) :: String.t