

Erlangのrecordを使うときは、Record.extractを使えばよいことを知りましたが、結構長くなります。

[code]

    iex(1)> require Record
    nil
    
    iex(2)> r = Record.extract(:sctp_initmsg, from_lib: "kernel/include/inet_sctp.hrl")
    [num_ostreams: :undefined, max_instreams: :undefined, max_attempts: :undefined,
    max_init_timeo: :undefined]
    
[/code]

毎回これを書く以外に、方法はあるでしょうか？ includeのような一回書けば済むものがあるとよいのですが。


CC BY-SA 3.0
2014-12-19T15:03:25.573
2156
2015-11-13T02:35:32.723
2015-11-13T02:35:32.723
3313
799
question
erlang elixir
ElixirからErlangのrecordを扱う方法


自己レスですが、別のことを調べているときに偶然、正しい(?)使用例を見つけました。  
(出典: <https://stackoverflow.com/questions/17345939/elixir-and-erlang-records-
pattern-matching>)

[code]

    defrecord :xmlText, Record.extract(:xmlText, from_lib: "xmerl/include/xmerl.hrl") 
    
[/code]

レコードを使いたいときに毎回Record.extract/2を使うのではなくて、defrecordに食わせるんですね。


CC BY-SA 3.0
2014-12-24T12:26:39.263
2498
2014-12-24T12:26:39.263
2017-05-23T12:38:55.250
-1
799
2156
answer