Erlang ets中名称参数的原因:未命名表的新名称
查看文档,我发现Erlang ets中名称参数的原因:未命名表的新名称,erlang,elixir,ets,Erlang,Elixir,Ets,查看文档,我发现Name参数是必需的。此外,当选项包含命名\u table时,函数将返回名称而不是表标识符,然后使用表标识符访问表 但是,当表未命名时,Name参数的用途是什么?为什么它是强制性的?我是否在创建表后使用过它?那么不是用表标识符代替名称了吗 当表格未命名时,名称的用途是什么?这是中的常见做法;对于未命名的表,Name被忽略 对于未命名的表,子句new(Options)->tid()| atom()需要额外检查Options是否不包含named_table现在,现有的arity 2函
Name
参数是必需的。此外,当选项包含命名\u table
时,函数将返回名称而不是表标识符,然后使用表标识符访问表
但是,当表未命名时,Name参数的用途是什么?为什么它是强制性的?我是否在创建表后使用过它?那么不是用表标识符代替名称了吗
当表格未命名时,
名称
的用途是什么?这是中的常见做法;对于未命名的表,Name
被忽略
对于未命名的表,子句new(Options)->tid()| atom()
需要额外检查Options
是否不包含named_table
现在,现有的arity 2函数需要对named_table
进行替代检查
这一切都带来了不必要的复杂性,但毫无价值。感谢您的澄清!尽管如此,在没有附加值的问题上往往存在分歧:显然,向调用者传达函数的依赖关系是有价值的。我认为
new(Options)->tid()
和new\u named(Name,Options)->atom()
在这种情况下会更好。+2我上面提到的冗余检查+共享功能的冗余私有函数+支持2个文档条款的必要性。。。吻未使用的参数通常会在中被忽略,这是一个简单的问题。名称不会完全被忽略-您可以通过ets:info(Tid,name)
获得它。我想不出任何合理的方法来使用这个“功能”,尽管……有趣的是,我认为这更复杂(至少对消费者而言)。但是,使用一个函数来创建一个新表也是一个好主意。我想我还需要适应erlang的方式:)再次感谢!