Perhaps this is a documentation bug, or perhaps I missed the explanation
somehow.
Suppose I define
*(x::ASCIIString, y::Any) = x * string(y)
so that * may be used for concatenation of any value to a string:
"the value of x is " * x ==> "the value of x is 2" (assuming x ==
2)
If I then list methods(*,(ASCIIString,Any)) I get
* *(s::String...) at string.jl:76*
* *(x::ASCIIString,y) at none:1 *
So, my question is: how does Julia decide which function to call in the
application of * in my new function body? Both definitions would seem to
apply. Is the situation really ambiguous, and I'm just benefitting from
some
arbitrary convention, or is there really a rule that would make it clear
that the
varargs definition (i.e. the standard one) should take precedence?
Thanks!
Cheers,
Ron