Operator @ Foundation
Reference operator (unary): passing a variable by reference instead of by value.
The reference operator (@) passes variables by reference to functions or procedures. Normally variables are passed by value and the receiving parameters of a function or procedure contain copies of the values of the variables. When the copy is changed within a called function or procedure, the variable in the calling function remains untouched. At the end of the called function or procedure the variable within the calling function is unchanged and the function or procedure's copy is discarded.
When a variable is passed by reference, the receiving parameter receives a reference to the variable in the calling function, instead of the copy of the value of the variable. Any change to the value is then visible in the calling function after the called routine returns. A change of the value in the called routine changes the contents of the variable in the calling function, if it is passed by reference.
The reference operator always passes a variable by reference regardless of its data type or storage class. If a variable references an array, it is possible to pass one of its elements by reference. Likewise, if a variable reference an object, it is possible to pass a reference to one of its member variables. In fact, even field variables can be passed by reference. If a member variable is passed by reference it must be declared EXPORTED: and may not have the attribute READONLY.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.