2017-05-13 1 views
3

Die richtige Option für Debug-Informationen ist debug_info:Warum Erlang kompilieren: Datei meldet Fehler für unbekannte Optionen nicht?

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

Auf der anderen Seite, was ich nicht verstehe, ist, warum die Zusammenstellung immer erfolgreich ist, auch wenn nicht vorhandene Optionen vorbei?

Zum Beispiel

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

oder

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

Warum diese beiden Beispiele berichten Fehler nicht?

Antwort

3

In Erlang ist es üblich, ungültige Optionen zu ignorieren. Optionen werden mit Standardwerten abgerufen. Etwas wie dieses:

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> 
Verwandte Themen