У меня возникла проблема при попытке создания и таблицы 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, но я не смог найти его. Пожалуйста помоги.
Да, это старый, теперь, когда я проверяю его. Использует версию 0.13, ради бога! – dotslash