gpt4 book ai didi

Erlang - 全局变量..是的,我知道,我知道

转载 作者:行者123 更新时间:2023-12-02 09:38:03 25 4
gpt4 key购买 nike

好吧,我一直在尝试各种方法来解决这个问题。

我需要让这个表成为一个全局表。我已经意识到在我的程序范围内传递 TableID 的效率要低得多。

所以我尝试创建一个新表然后查找它:

TableID = ets:new(tb, [set,public]),
put({tableUniqueID}, TableID),

然后我用了:

get({tableUniqueID})

在同一个函数中,它返回 TableID 就好了...但是当我在另一个函数中使用它时,它返回一个未定义的值。

什么?我认为 get 和 put 成为了一个关键的全局..

此外,在这一切之前,我意识到您“可以”这样调用表查找函数:

ets:lookup(get({tableUniqueID}), msgIn)

同样的事情,在函数中有效,在外部则不行.. Get Put 问题..

然后我意识到查找表的另一种方法是调用表的原子

ets:lookup(tb, msgIn)

但这永远不会起作用,在函数内部不起作用,在函数外部也不起作用..

所以我的首要任务是弄清楚为什么不可能通过原子查找表。但它说它无处不在,包括手册。

我可以没有 get/put,只要我可以存储表,然后通过其原子标识符查找表。

有人能解释这个困境吗?

最佳答案

我明白了!!

希望文档能够在查找功能下这样说。更好的是,每个编写 ets 教程或更详细的书籍的人

解决办法是

TableID = ets:new(tb, [set,public,named_table])

named_table 是重要的部分

一些深入研究手册页,但是

;)

关于Erlang - 全局变量..是的,我知道,我知道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3490520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com