F), varying the right-hand side of the assignment as follows:
F = G, where G is a local variable of type float
F = the float-attribute of Obj, where Obj is locally bound
F = Param, where Param is bound to a float-parameter
F = the current value of Var, in a collect data statement, where Var is locally bound to a float-variable which has a valid current value.
F = the current value of Var, in a collect data statement with a fixed timeout, where Var is locally bound to a float-variable which has a valid current value.
F = FA[50], where FA is locally bound to a float-array.
F = FL[0], where FL is locally bound to a 1000-element float-list.
F = the first float in FL, where FL is locally bound to a float-list.
F = the last float in FL, where FL is locally bound to a 1000-element float-list.
F = FL[500], where FL is locally bound to a 1000-element float-list.
F = the float-attribute of S, where S is locally bound to this structure: structure(float-attribute: 1.0, integer-attribute: 0, integer-attribute-2: 0)
F = the first float in S, where S is locally bound to this sequence: sequence(1.0, 1.0, 1.0)
F = S[0], where S is locally bound to this sequence: sequence(1.0, 1.0, 1.0)
Referencing an attribute, parameter, or array, on the other hand, is only approximately twice as slow as referencing a local variable.
Also, referencing the elements of a list is a very slow operation compared to referencing the elements of an array. Thus, you should use arrays over lists whenever you need to reference an element by its index. The exception is referencing the first element of a list by its index, which is almost as fast as an array reference.
Referencing elements of sequences have similar performance as lists.