Ich bin gerade mit Julia Sie beginnen und haben ein Modul wie folgt definiert:kann nicht konkrete Klasse in Julia instanziiert
MyModule.jl
module MyModule
export ConcreteClass
end
Dann habe ich eine Datei, die einige triviale abstrakt definiert Klasse:
generics.jl
abstract MyAbstract
Danach versuche ich, erben diese Klasse:
concrete.jl
type ConcreteClass <: MyAbstract
end
Natürlich ist dies trivial, aber ich wollte nur in der Lage sein, ein triviales Beispiel zu instanziieren. Ich habe den Weg zu meinem Projekt Quellen an die LOAD_PATH
Variable und in meiner julia Konsole lief ich folgendes:
using MyModule # No error
r = ConcreteClass()
Die zweite Zeile nicht mit: ERROR: UndefVarError: ConcreteClass not defined
. Die Sache in der Julia-Konsole, wenn ich die zweite Zeile die Autovervollständigung eintippt schlägt vor, ConcreteClass
, so dass der Typ erkannt wird, aber nicht sicher, warum der not defined
Fehler kommt.
Persönlich habe ich alle die umfasst im MyModule .J L. Sie müssen nur sicherstellen, dass Sie generics.jl vor concrete.jl einschließen. Nur eine Stilsache. –
@ChrisRackauckas Danke dafür. Ich habe gerade angefangen, heute mit der Sprache zu spielen und so etwas zu lernen :) Gut zu wissen. – Luca
@ChrisRackauckas Ich habe jedoch einen Kommentar. Auf diese Weise verbirg ich die 'MyAbstract' Klasse vom Benutzer der Bibliothek und sie können nicht versehentlich versuchen, sie zu instantiieren. Ist das eine Überlegung wert? – Luca