首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ETS表创建错误

ETS表创建错误
EN

Stack Overflow用户
提问于 2016-08-10 19:09:09
回答 1查看 65关注 0票数 2

我在尝试基于记录创建和ETS表时遇到了一个问题。代码取自Introducing Elixir一书。

以下是记录:

代码语言:javascript
复制
defmodule Planemo do
    require Record
    Record.defrecord :planemo, [name: nil, gravity: 0, diameter: 0, distance_from_sun: 0]
end

现在,如果创建一个表,如下所示,它会成功:

代码语言:javascript
复制
planemo_table = :ets.new(:planemos,[:named_table, {:keypos, Planemo.planemo(:name) + 1}])

在另一个示例中,作者使用以下语法(__record__),它失败了:

代码语言:javascript
复制
planemo_table = :ets.new(:planemos,[:named_table, {:keypos, Planemo.__record__(:index, :name) + 1}])

错误:

代码语言:javascript
复制
** (UndefinedFunctionError) function Planemo.__record__/2 is undefined or private
    Planemo.__record__(:index, :name)
    planemo_storage.ex:6: PlanemoStorage.setup/0

我最初认为也许__record__在Elixir 1.3.2中被弃用了,但我一直没有找到它的任何踪迹。请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 20:48:07

那本书似乎很旧了。包括__record__在内的许多记录功能都是removed on 24 May 2014的,并且更改是Elixir 0.14 which was released on 17 June 2014的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38871763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档