2009-09-06 17 views
5

erlでレコードを直接使用する方法はありますか?私が何をしようと、それは常にレコードを見つけることができないと言います。私は、記憶媒介取引をしようとしており、私の記録がなければ遠すぎることはできません。どんな助けでも大歓迎です - ありがとう!Erlのレコード(Erlangの質問)

答えて

13

はい、help()を使用して、シェルでこれらのコマンドを見つけます。

rd(R,D) -- define a record 
rf()  -- remove all record information 
rf(R)  -- remove record information about R 
rl()  -- display all record information 
rl(R)  -- display record information about R 
rp(Term) -- display Term using the shell's record information 
rr(File) -- read record information from File (wildcards allowed) 
rr(F,R) -- read selected record information from file(s) 
rr(F,R,O) -- read selected record information with options 

これらはシェルの巧妙なハックであり、コンパイル時にモジュールで使用されるレコード定義を読み込むことができます。 rrコマンドを使用してモジュールからロードします。

これらは、インタラクティブシェルでのみ使用できることに注意してください。

+1

追加する小さなメモ:レコードは実際には存在しません。タグ付きのタプルだけです。例えば。 -record(state、{sessions})を定義するとします。これまでに#state {session = N}を使用すると、実際にはタプル{state、N}になります。同様に、#state {}と入力すると、{状態、未定義}になります。これを知っていると、たとえばシェルでの記憶喪失に取り組んでいるときに、簡単にレコードを "偽造"することができます。がんばろう。 –

3

どういう意味ですか?シェルでは、クリスチャンが書いたとおりです。モジュールであれば、レコードを使用する前にレコードを定義する必要があります。これを行う方法については、http://erlang.org/doc/のerlang docs(オンライン)を参照してください。それらはコンパイル時の構成なので、そのようには存在しません。