Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GenServer是否可以在Elixir中拥有自己的结构?_Elixir_Gen Server - Fatal编程技术网

GenServer是否可以在Elixir中拥有自己的结构?

GenServer是否可以在Elixir中拥有自己的结构?,elixir,gen-server,Elixir,Gen Server,场景: 我有一个简单的GenServer来管理一些状态 目前,我正在使用map管理我的状态。但它也在不断增长 我正在向该州添加更多数据 问题: 因此,为了保证编译时,我可以在GenServer模块中使用struct 如果是,这是一个正确的方法吗 如果没有,还有什么选择 只需声明一个普通结构(可以选择嵌套在GenServer命名空间中的模块中),并将其用作初始状态: defmoduletestdo DEF模块状态do defstruct~w|foo bar baz|a 结束 使用GenSer

场景:

  • 我有一个简单的GenServer来管理一些状态
  • 目前,我正在使用
    map
    管理我的状态。但它也在不断增长 我正在向该州添加更多数据
问题:

  • 因此,为了保证编译时,我可以在
    GenServer
    模块中使用
    struct
  • 如果是,这是一个正确的方法吗
  • 如果没有,还有什么选择

只需声明一个普通结构(可以选择嵌套在
GenServer
命名空间中的模块中),并将其用作初始状态:

defmoduletestdo
DEF模块状态do
defstruct~w|foo bar baz|a
结束
使用GenServer
def start_链接(选项\\[])do
GenServer.start_链接(_模块,%状态{foo:42,bar:opts},名称:_模块)
结束
@绝对正确
definit(opts\\[]),do:{:确定,opts}
def state,do:GenServer.call(_模块__,:state)
@绝对正确
def handle_调用(:state,_from,%state{}=state)do
{:答复,州,州}
结束
结束
用{:好的,}