Method `*()
- Method
`*
mixed
`*(mixed
arg1
)
mixed
`*(object
arg1
,mixed
arg2
,mixed
...extras
)
mixed
`*(mixed
arg1
,object
arg2
)
array
`*(array
arg1
,int
arg2
)
array
`*(array
arg1
,float
arg2
)
string
`*(string
arg1
,int
arg2
)
string
`*(string
arg1
,float
arg2
)
string
`*(array
(string
)arg1
,string
arg2
)
array
`*(array
(array
)arg1
,array
arg2
)
float
`*(float
arg1
,int
|float
arg2
)
float
`*(int
arg1
,float
arg2
)
int
`*(int
arg1
,int
arg2
)
mixed
`*(mixed
arg1
,mixed
arg2
,mixed
...extras
)- Description
Multiplication/repetition/implosion.
Every expression with the
*
operator becomes a call to this function, i.e.a*b
is the same aspredef::`*(a,b)
. Longer*
expressions are normally optimized to one call, so e.g.a*b*c
becomespredef::`*(a,b,c)
.- Returns
If there's a single argument, that argument will be returned.
If the first argument is an object that implements lfun::`*(), that function will be called with the rest of the arguments.
If there are more than two arguments, the result will be
`*(`*(
.arg1
,arg2
), @extras
)If
arg2
is an object that implements lfun::``*(), that function will be called witharg1
as the single argument.Otherwise the result will be as follows:
arg1
can have any of the following types:array
arg2
can have any of the following types:int
|float
The result will be
arg1
concatenatedarg2
times.string
|array
The result will be the elements of
arg1
concatenated witharg2
interspersed.string
The result will be
arg1
concatenatedarg2
times.int
|float
The result will be
, and will be a float if eitherarg1
*arg2
arg1
orarg2
is a float.- Note
In Pike 7.0 and earlier the multiplication order was unspecified.
- See also