如何将这段代码从 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
,假设 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)
。
如何将这段代码从 Erlang 翻译成 Elixir?
二郎:
xmpp:get_text(Packet#message.body)
灵药:
:xmpp.get_text(packet ... ?
这是记录字段访问语法。该代码访问术语 Packet
的字段 body
,假设 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)
。