| |
|
|
| Bisher fueron Arrays como Prozeduren-Parámetro byRef en lugar de byVal transferencia, also sólo el Adresse en lugar de una Kopie. Es zwar más rápido, kann aber a inesperado Ergebnissen führen en uno ligeramente a erlernenden Lingua.
Jetzt voluntad Arrays como Prozeduren-Parámetro standardmäßig byVal transferencia, salvo uno setzt una @ antes el Variablennamen en el Parameterdeklarationsanweisung:
Standard, byVal:
Wenn byRef erwünscht (más rápido):
Auf Parámetro, el no vom Typ Array transferencia voluntad, ha @ no Einfluss, sin embargo se el Prüfung para esta Parámetro en una Array-Kopie beim conjunto des @-Zeichens abgeschaltet.
En Características, en denen lo en höchste Geschwindigkeit ankommt, es also una Optimierung por @ para cada Parámetro con einzubeziehen.
Achtung:
Un ähnliche Falle es einfaches Zuweisen Array=Array:
var a b=[10 20 30]
a=b
a[0]=55
imprimir b// zeigt 55,20,30 obwohl b syntaktisch no manipuliert wurde
Möchte uno una Kopie de una Array para solch Zuweisungen, entonces kann dafür el Función arr verwendet voluntad:
|
|
|
| |
|
|
|
HofK | Wenn @parameter en el Prozedurdefinition esta Parámetro como "At resse" -Schreibfehler bewußt- übergibt, Así que el Referenz en el Parámetro, debería uno media, dass a=b para arrays auch el Kopie de b después de a bringt y luego a=@b el Referenz übergibt. Damit bräuchte uno hier kein arr().
Was spricht dagegen? Was übersehe Yo esta? |
|
|
| |
|
|