List 列表:mnesia:table_信息上的map()(表,属性)
我想对Mnesia表的每个属性进行操作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)) 我希望上面的函数给出一个值列表。 但是,我犯了一个错误
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}
如您所见,所有命名信息都将丢失
但是你所有的功能看起来都有点无用。如果要获取所有值,可以使用记录本身