[Top]
|
Method `->()
- Method
`->
mixed `->(object arg, string index)
mixed `->(int arg, string index)
mixed `->(array arg, string index)
mixed `->(mapping arg, string index)
int(0..1) `->(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->b is the same as
predef::`^(a,"b") where "b" is the symbol
b in 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 UNDEFINED will be returned.
|
multiset | If index exists in arg , 1 will be returned.
Otherwise UNDEFINED will be returned.
|
program | The non-protected (ie public) constant symbol index will
be looked up in arg .
|
|
- Note
In an expression a->b , the symbol b can 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
`[]() , lfun::`->() , ::`->() , `->=
|