首页 文章

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

提问于
浏览
0

我有一个ets表格式如下

ets:new(players, [set,named_table])

放入表格的数据是球员姓名及其年龄 .

它的格式为[{Name,Age}]

我做了一个功能,试图让玩家年龄和年龄 .

getPlayerAge(PlayerName)->
  Player = ets:lookup(players,PlayerName),
  [{_,Age}] = Player,
  Age.

我得到了一个糟糕的错误,说实话,我很困惑 .

可以这样做还是我离开了?

1 回答

  • 1

    据推测,确切的错误是这一个:

    {badmatch, []}
    

    也就是说,你从 ets:lookup 获得的值是 [] ,空列表,并且与模式 [{_,Age}] 不匹配 . 如果 ets:lookup 找不到具有给定键的元素,则返回空列表 . 您可以通过调用 ets:tab2list(players) 并检查返回值来检查表实际上是否包含您希望包含的内容 .

相关问题