从 ets:lookup() 中提取值 - Erlang
Extracting a value from an ets:lookup() - Erlang
我有一个 ets table 格式如下
ets:new(players, [set,named_table])
放入 table 的数据是球员姓名和年龄。
格式为[{姓名,年龄}]
我做了一个函数来尝试获取玩家的年龄和年龄。
getPlayerAge(PlayerName)->
Player = ets:lookup(players,PlayerName),
[{_,Age}] = Player,
Age.
我遇到了一个不匹配的错误,老实说我很困惑。
这可以完成还是我离题太远了?
大概是这个错误:
{badmatch, []}
也就是说,您从 ets:lookup
获得的值是 []
,空列表,与模式 [{_,Age}]
不匹配。 ets:lookup
return 如果找不到具有给定键的元素,则为空列表。您可以通过调用 ets:tab2list(players)
并检查 return 值来检查 table 是否确实包含您期望它包含的内容。
我有一个 ets table 格式如下
ets:new(players, [set,named_table])
放入 table 的数据是球员姓名和年龄。
格式为[{姓名,年龄}]
我做了一个函数来尝试获取玩家的年龄和年龄。
getPlayerAge(PlayerName)->
Player = ets:lookup(players,PlayerName),
[{_,Age}] = Player,
Age.
我遇到了一个不匹配的错误,老实说我很困惑。
这可以完成还是我离题太远了?
大概是这个错误:
{badmatch, []}
也就是说,您从 ets:lookup
获得的值是 []
,空列表,与模式 [{_,Age}]
不匹配。 ets:lookup
return 如果找不到具有给定键的元素,则为空列表。您可以通过调用 ets:tab2list(players)
并检查 return 值来检查 table 是否确实包含您期望它包含的内容。