为什么Erlang编译:文件不报告未知选项的错误?

时间:2017-05-13 14:06:31

标签: compilation erlang

调试信息的正确选项是debug_info

1> compile:file(hello, [debug_info, export_all]).
{ok,hello}

另一方面,我不明白为什么编译总是成功,也是在传递不存在的选项时?

例如

2> compile:file(hello, [debug, export_all]).
{ok,hello}

3> compile:file(hello, [foobar, export_all]).
{ok,hello}

为什么这两个例子不报告错误?

1 个答案:

答案 0 :(得分:2)

在Erlang中常见的是忽略无效选项。使用默认值获取选项。像这样:

1> Opts = [{opt1, 1}, {other, 2}].
[{opt1,1},{other,2}]
2> %% Inside function
2> Opt1 = proplists:get_value(one, Opts, 1),
2> Opt2 = proplists:get_value(two, Opts, 2).
2
3> Opt1.
1
4> Opt2.
2
5>