如何在 Elixir 中访问地图中的数据



我有使用Phoenix框架编写的简单聊天应用程序。

我想访问套接字内的一些数据

这是我为此使用的方法

def join("room:" <> _user, _, socket) do
IO.inspect socket
send self(), :after_join
{:ok, socket}
end

它将提供漂亮的地图,提供所有细节。 使用此方法获得所有房间(主题:"房间:测试用户"(的最佳方法是什么

这是控制台中显示的示例结果

[info] JOIN room:Testuser to PhoenixChat.RoomChannel
Transport:  Phoenix.Transports.WebSocket
Parameters: %{}
%Phoenix.Socket{assigns: %{user: "Testuser"}, channel: PhoenixChat.RoomChannel,
channel_pid: #PID<0.409.0>, endpoint: PhoenixChat.Endpoint,
handler: PhoenixChat.UserSocket, id: nil, joined: false,
pubsub_server: PhoenixChat.PubSub, ref: nil,
serializer: Phoenix.Transports.WebSocketSerializer, topic: "room:Testuser",
transport: Phoenix.Transports.WebSocket, transport_name: :websocket,
transport_pid: #PID<0.375.0>}
[info] Replied room:Testuser :ok

您正在修补的thing不是地图。这就是我们通常所说的结构!结构是具有明确定义的字段的映射(类似于您可能从其他语言中知道的对象(。

正如您在检查它时已经发现的那样,您可以读取所有键值对。

当您要访问结构的字段时,您可以说struct.field.请阅读Elixir网站上的教程以获取更多信息。

相关内容

  • 没有找到相关文章

最新更新