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.
Ja, es ist alt, jetzt, dass ich es überprüfe. Benutzt Version 0.13, um Gottes Willen! – dotslash