erl -noshell -s 模块函数参数不起作用
erl -noshell -s module function argument not work
这是一个奇怪的问题。
当我调用不带参数的函数时,它起作用了。
参见 https://gist.github.com/kingluo/6e5245692b76dda5ecd4
我将 test2 更改为:
test2([N])->
I = list_to_integer(atom_to_list(N)),
max(I).
因为 erl 以原子类型传递参数。
但是我有两个新问题:
- 为什么 test2 必须使用
[N]
而不仅仅是 N
?
- 为什么 max 仍然与 N 一起运行
在原子类型?为什么不抱怨它不是整数类型?发生什么了
那里?原子N是无限大整数?
命令行传递的参数始终是原子,请参阅 http://www.erlang.org/doc/man/erl.html 处的文档。
因此test2/1必须将原子转换为字符串,然后再转换为整数。
-运行 选项会将参数作为字符串传递,可以将其转换为整数。
这是一个奇怪的问题。 当我调用不带参数的函数时,它起作用了。 参见 https://gist.github.com/kingluo/6e5245692b76dda5ecd4
我将 test2 更改为:
test2([N])->
I = list_to_integer(atom_to_list(N)),
max(I).
因为 erl 以原子类型传递参数。 但是我有两个新问题:
- 为什么 test2 必须使用
[N]
而不仅仅是N
? - 为什么 max 仍然与 N 一起运行 在原子类型?为什么不抱怨它不是整数类型?发生什么了 那里?原子N是无限大整数?
命令行传递的参数始终是原子,请参阅 http://www.erlang.org/doc/man/erl.html 处的文档。
因此test2/1必须将原子转换为字符串,然后再转换为整数。
-运行 选项会将参数作为字符串传递,可以将其转换为整数。