View Full Version : Achso, ich habe test() nicht deklariert
Das Script wurde auf das Wesentliche gekürzt.
Function test(s As SPoint, i as Integer)
{
Return;
}
test(New SPoint(500, 500), 10);
compiler error: Global member 'test' not found. (Line: 8, Column: 3, Index: 95, Token: 'test', File: 'Script 7653').
compiler error: Global member 'test' not found (Line: 8, Column: 3, Index: 95, Token: 'test', File: 'Script 7653').
Function test(s As SPoint, i As Integer)
{
Return;
}
Var x As New SPoint(500, 500);
test(x, 10);
Kompilierung erfolgreich.
Kann mir bitte mal jemand meinen Fehler in Code 1 erklären?
Artemide
21-10-2012, 18:36
Hi,
bin kein Experte aber könnte das was mit ByRef und ByVal zu tun haben ?
Denn mit dem New erzeugts Du ja ne neue Instanz einer Variablen aber wohin wird die zugewiesen?
Was wird jetzt an test übergeben, die Adresse der neuen Instanz Point oder das Value in der Adresse der neuen Instanz Point?
Ich glaube in Code 1 wird die Addresse übergeben, aber damit kann die Funktion test nichts anfangen, weil sie ja einen Wert erwartet !
In C gab es da, so weit ich mich erinnere, eine Deklaration mit der man das festgelegt hat aber das ist zu lange her.
cu
Arte
Dragon Head
22-10-2012, 23:37
Das funktioniert vermutlich auch so in Java aber unser Scriptsystem ist etwas anders aufgebaut.
Hi,
bin kein Experte aber könnte das was mit ByRef und ByVal zu tun haben ?
Denn mit dem New erzeugts Du ja ne neue Instanz einer Variablen aber wohin wird die zugewiesen?
Was wird jetzt an test übergeben, die Adresse der neuen Instanz Point oder das Value in der Adresse der neuen Instanz Point?
Ich glaube in Code 1 wird die Addresse übergeben, aber damit kann die Funktion test nichts anfangen, weil sie ja einen Wert erwartet !
In C gab es da, so weit ich mich erinnere, eine Deklaration mit der man das festgelegt hat aber das ist zu lange her.
cu
Arte
Gegenbeispiel:
Function test(s As SPoint)
{
Return;
}
test(New SPoint(500, 500));
Kompilierung erfolgreich.
Auch das Ausführen funktioniert prima
Es liegt wahrscheinlich daran, dass sich in den Scriptcompiler ein Bug "eingeschlichen" hat und er die Klammern nicht richtig auflösen kann.
lg
Elchi
Powered by vBulletin® Version 4.2.2 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.