如何将这段代码从Erlang翻译成Elixir?
二郎:
xmpp:get_text(Packet#message.body)
药剂:
:xmpp.get_text(packet ... ?
答案 0 :(得分:6)
这是记录字段访问语法。假设body
是Packet
记录,该代码将访问术语Packet
的字段message
。 Elixir提供了一个Record模块来处理这个问题。您需要先使用Record.extract
导入记录的定义(更改.hrl
路径以指向包含记录定义的依赖项hrl
文件;在您正在使用的库中搜索-record(message
,然后使用该定义。这是一个例子:
defmodule A do
Record.defrecord :message, Record.extract(:message, from_lib: "path/to/file.hrl")
end
现在Packet#message.body
会转换为A.message(packet, :body)
。