从 ets:lookup() - Erlang 中提取值



我有一个 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) 并检查返回值来检查表是否实际包含您期望包含的内容。

相关内容

  • 没有找到相关文章

最新更新