Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
List 列表:mnesia:table_信息上的map()(表,属性)_List_Erlang_Records_Mnesia - Fatal编程技术网

List 列表:mnesia:table_信息上的map()(表,属性)

List 列表:mnesia:table_信息上的map()(表,属性),list,erlang,records,mnesia,List,Erlang,Records,Mnesia,我想对Mnesia表的每个属性进行操作 Record = #table{attr1, attr2, attr3, attr4}, mnesia:table\u info(table,attributes)给出了原子属性列表,即[attr1,attr2,attr3,attr4] lists:map(fun(X) -> Record#table.X end, mnesia:table_info(Table, attributes)) 我希望上面的函数给出一个值列表。 但是,我犯了一个错误

我想对Mnesia表的每个属性进行操作

Record = #table{attr1, attr2, attr3, attr4},
mnesia:table\u info(table,attributes)
给出了原子属性列表,即
[attr1,attr2,attr3,attr4]

lists:map(fun(X) -> Record#table.X end, mnesia:table_info(Table, attributes))
我希望上面的函数给出一个值列表。 但是,我犯了一个错误

"  * 1: syntax error before: X  "
我已经使用shell命令定义了表结构
-rd(table,{})
,还使用了
-rr(module)
来读取记录结构

上面的代码有什么错误?? 任何,使用列表模块处理表属性的替代方法???

您不能在运行时按名称引用记录项。这是记录的缺点之一

运行时记录只是元组,第一个元素是记录的名称,所以

#table{attr1 = 1, attr2 = 2, attr3 = 3, attr4 = 4} =:= {table, 1, 2, 3, 4}
如您所见,所有命名信息都将丢失

但是你所有的功能看起来都有点无用。如果要获取所有值,可以使用记录本身