erl -noshell -s模块函数参数不起作用

时间:2015-07-01 05:30:03

标签: erlang

这是一个奇怪的问题。 当我没有参数调用函数时,它可以工作。 见https://gist.github.com/kingluo/6e5245692b76dda5ecd4

我将test2更改为:

test2([N])->
    I = list_to_integer(atom_to_list(N)),
    max(I).

因为erl在atom类型中传递参数。 但我有两个新问题:

  • 为什么test2必须使用[N]但不仅仅是N
  • 为什么max仍然以N运行 在原子类型?为什么不抱怨它不是整数类型?怎么了 那里?原子N是无限整数?

2 个答案:

答案 0 :(得分:1)

在命令行上传递的参数总是原子,请参阅http://www.erlang.org/doc/man/erl.html处的文档。

因此test2 / 1必须将原子转换为字符串,然后转换为整数。

答案 1 :(得分:1)

-run选项将参数作为字符串传递,可以将其转换为整数。