Method `->()
- Method `->
mixed `->(object arg, string index)
mixed `->(int arg, string index)
mixed `->(array arg, string index)
mixed `->(mapping arg, string index)
bool `->(multiset arg, string index)
mixed `->(program arg, string index)- Description
Arrow indexing.
Every non-lvalue expression with the
->operator becomes a call to this function.a->bis the same aspredef::`^(a,"b")where"b"is the symbolbin string form.This function behaves like `[], except that the index is passed literally as a string instead of being evaluated.
- Returns
If arg is an object that implements lfun::`->(), that function will be called with index as the single argument.
Otherwise the result will be as follows:
arg can have any of the following types:object The non-protected (ie public) symbol named index will be looked up in arg.
int The bignum function named index will be looked up in arg.
array An array of all elements in arg arrow indexed with index will be returned.
mapping If index exists in arg the corresponding value will be returned. Otherwise
UNDEFINEDwill be returned.multiset If index exists in arg,
1will be returned. OtherwiseUNDEFINEDwill be returned.program The non-protected (ie public) constant symbol index will be looked up in arg.
- Note
In an expression
a->b, the symbolbcan be any token that matches the identifier syntax - keywords are disregarded in that context.- Note
An arrow indexing expression in an lvalue context, i.e. where the index is being assigned a new value, uses `->= instead of this function.
- See also