2017-05-13 31 views
3

調試信息的正確選項是debug_info爲什麼Erlang編譯:文件不會報告未知選項的錯誤?

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} 

爲什麼這兩個例子不報告錯誤?

回答

3

在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> 
相關問題