如何将这段代码从 Erlang 翻译成 Elixir?

How can I translate this piece of code from Erlang to Elixir?

如何将这段代码从 Erlang 翻译成 Elixir?

二郎:

xmpp:get_text(Packet#message.body)

灵药:

:xmpp.get_text(packet ... ?

这是记录字段访问语法。该代码访问术语 Packet 的字段 body,假设 Packetmessage 记录。 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)