Parámetros constantes
Como alternative a los parámetros de referencia, puede usar un parámetro const. Ya que no puede asignar un nuevo valor a un parámetro constante dentro de una rutina, el compilador puede optimizar la transmisión de parámetros. El compilador puede elegir un enfoque similar para parámetros de referencia (o una referencia const, términos de C++), pero el comportamiento seguirá siendo similar a los parámetros de valor, porque el valor original no se verá afectado por la rutina.
De hecho, si intenta compilar el siguiente código (trivial), Delphi producirá un error :
Código Delphi
[-]
function DoubleTheValue (const Value: Integer): Integer;
begin
Value := Value * 2; Result := Value;
end;
Parámetros de referencia
...
Transmitir un parámetro por referencia significa que su valor no se copia en la pila del parámetro formal de la rutina (evitar una copia a menudo significa que el programa se ejecuta más rápido). En su lugar, el programa hace uso del valor original, también en el código de la rutina. Esto permite al procedimiento o función cambiar el valor del parámetro. La transmisión de parámetros por referencia se expresa con la palabra clave var.
He aquí un ejemplo de transmisión de un parámetro por referencia mediante el uso de la palabra clave var:
Código Delphi
[-]
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;
var
X: Integer;
begin
X := 10;
DoubleTheValue (X);
end;