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