 | Bisher wurden Arrays als Prozeduren-Parameter byRef statt byVal übergeben, also nur die Adresse statt eine Kopie. Das ist zwar schneller, kann aber zu unerwarteten Ergebnissen führen in einer leicht zu erlernenden Sprache.
Jetzt werden Arrays als Prozeduren-Parameter standardmäßig byVal übergeben, ausgenommen man setzt ein @ vor den Variablennamen in der Parameterdeklarationsanweisung:
Standard, byVal:
Wenn byRef erwünscht (schneller):
Auf Parameter, die nicht vom Typ Array übergeben werden, hat @ keinen Einfluss, jedoch wird die Prüfung für diesen Parameter auf eine Array-Kopie beim setzen des @-Zeichens abgeschaltet.
Bei Funktionen, bei denen es auf höchste Geschwindigkeit ankommt, ist also eine Optimierung per @ für jeden Parameter mit einzubeziehen.
Achtung:
Eine ähnliche Falle ist einfaches Zuweisen Array=Array:
var a b=[10 20 30]
a=b
a[0]=55
print b// zeigt 55,20,30 obwohl b syntaktisch nicht manipuliert wurde
Möchte man eine Kopie von einem Array für solch Zuweisungen, dann kann dafür die Funktion arr verwendet werden:
|
|