2016-08-10 4 views
2

У меня возникла проблема при попытке создания и таблицы ETS на основе записей. Код взят из книги Introducing Elixir.Ошибка создания таблицы ETS

Вот запись:

defmodule Planemo do 
    require Record 
    Record.defrecord :planemo, [name: nil, gravity: 0, diameter: 0, distance_from_sun: 0] 
end 

Теперь, если таблица создается следующим образом, она преуспевает:

planemo_table = :ets.new(:planemos,[:named_table, {:keypos, Planemo.planemo(:name) + 1}]) 

В другом примере автор использует следующий синтаксис (__record__) и он терпит неудачу :

planemo_table = :ets.new(:planemos,[:named_table, {:keypos, Planemo.__record__(:index, :name) + 1}]) 

Ошибка:

** (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, но я не смог найти его. Пожалуйста помоги.

ответ

Смежные вопросы