2017-06-02 30 views
0

有什麼辦法來使用erl_call運行RR/1成功?或者是否有類似rr的函數可以在erl_call中使用?我想在erl_call中加載一些記錄。 或者有沒有什麼辦法在erl_call中定義一條記錄。似乎RD/1也不能在erl_call使用:( 例如 回聲 「RR(模塊)。」 | erl_call -e如何在erl_call成功中運行rr()?

RR是外殼的功能,似乎不能在erl_call

回答

0

RR使用RD,RP ......只爲外殼是有用的,它可以讓外殼正確解釋一個記錄。

但請記住,一個記錄的「存在」只在編譯時,程序的執行過程中,它退出只有tuples,所有的語法如A#my_record{a_label = Value}由元組功能取代像setelement(3,A,Value)

要做到這一點,編譯器必須找到該文件(或包含文件中)定義記錄英寸

如果編譯器沒有找到記錄定義時,它必須編譯記錄語法,它會產生一個錯誤。

僞函數record_info/2是在編譯期間僅提供,它是由編譯後的結果取代。最後,如果你想在幾個模塊之間共享一個記錄(雖然不推薦)一般的解決方案是將記錄定義放在一個頭文件中:File.hrl並在必要時將這個文件包含在模塊中。

由於maps存在(他們使用Erlang/OTP R17引入),我認爲它們是更好的解決方案共享模塊之間的結構化信息,至少在很多情況下。

相關問題