@ operator
The @ operator indicates that the name following the operator refers to a property and not a field. This is necessary because you can use a set-values block (see Set-values blocks) to set values both for properties and for fields within a record.
Complex properties contain one or more property fields. Complex properties require the @ operator to distinguish them from the property fields (see Properties). Otherwise this operator is rarely used. If there is no field in the same set-value block with a conflicting name, EGL does not need the @ operator to recognize a property name.
Example
An EGL Dictionary
part is a list of name-value pairs. Use a set-values block
to assign those name-value pairs; you can use the same set-values block
to
assign values to properties of the dictionary itself. The following
statement
declares a new dictionary variable:
myRef Dictionary {
displayName = "myNewDictionary"
};Because of part resolution rules (see EGL part resolution rules),
EGL assumes that
displayName = "myNewDictionary" is
a name-value
pair in the new dictionary. If you want to assign a value to the displayName property
for the dictionary, you must use an @ operator,
as in the following example:myRef Dictionary {
@displayName {"myNewDictionary"}
};