Giúp đỡ về elixir

defmodule ApiElixirWeb.LinksChannel do
  use Phoenix.Channel
  @map_socket  MapSet.new()
  def join("links", _payload, socket) do
    MapSet.put(@map_socket,"1234")
    IO.inspect @map_socket
    {:ok,socket}
  end
  def handle_in("new_link",payload, socket) do
    push socket, "new_link_added", payload
    {:noreply, socket}
  end
end

Xin chào mấy bác e vừa mới học Elixir bác nào có kinh nghiệm cho e hỏi hiện tại e đang muốn tạo 1 mảng socket như đoạn code trên nhưng giá trị map_socket in ra là rỗng bác nào có kinh nghiệm giúp e với ạ. Ty mấy bác !

Elixir là ngôn ngữ lập trình hàm. Biến là immutable tức là không thể manipulate nó mà phải tạo biến mới.

map_socket = MapSet.put(@map_socket, "1234")
IO.inspect(map_socket)

Hơn nữa @ operator dùng để khai báo constant trong module. Nếu k cần thiết thì khai báo trong function là được rồi

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?