为解决敏感词过滤问题,需要用到ets表,使用了《erlang程序设计》中ETS表那章的建立方式。
TableID = ets:new(test,[Mode]).
eg : Table1 = ets:new(test,[set]).
但是这种方式往往在一个函数中建立table,但是使用另一个函数向表中插入数据的时候显示未能找到表。无法正常插入。
后来在"乌鸦"的指导下,我用了另一种创建方式,如下:
eg: Table1 = ets:new (filter,[named_table,public,bag]).
这种方式创建的表在其他函数中可以正常插入以及调试。
插入方式:
ets:insert(filter,{value}).
后来看到书中关于ETS表的描述如下
@spec ets:new(Name,[OPT]) ->TableId
其中[OPT] 的解释是:OPT是一个列表选项,取值范围如下:
set | order_set | bag |duplicate_bag
private
public
protected
name_tabled
{Keypos,K}
其中set | order_set | bag |duplicate_bag 这些表类型选项是不可并列存在的,而其他几个都是可以同时存在在列表选项中。