2016-08-10 4 views
2

Ich habe ein Problem beim Erstellen und ETS-Tabelle basierend auf Datensätzen aufgetreten. Der Code stammt aus dem Buch Introducing Elixir.ETS-Tabelle Erstellungsfehler

Hier ist der Rekord:

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

Nun, wenn eine Tabelle wie folgt erstellt wird, es gelingt:

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

In einem anderen Beispiel verwendet der Autor die folgende Syntax (__record__) und es scheitert :

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

Fehler:

** (UndefinedFunctionError) function Planemo.__record__/2 is undefined or private 
    Planemo.__record__(:index, :name) 
    planemo_storage.ex:6: PlanemoStorage.setup/0 

Ich dachte zuerst, dass vielleicht __record__ in Elixir 1.3.2 veraltet war, aber ich konnte keine Spur davon finden. Bitte helfen Sie.

Antwort