Can functions add properties?
Mike Parker
aldacron at gmail.com
Fri Nov 23 07:06:49 PST 2012
On Friday, 23 November 2012 at 14:08:05 UTC, Jun wrote:
> I found some codes write
>
> toStringz(myString)
>
> as
>
> mystring.toStringz
>
> So I tested this code myself and it worked.
>
> int pow2(int i)
> {
> return i*i;
> }
> int myint = 5;
> int otherint = myint.pow2;
> assert(otherint == 25);
FYI, you could even do this:
int otherint = 5.pow2;
>
> I've never seen any documentation about this behaviour. I think
> it's a good feature, but I'm a bit confused.
It's called Universal Function Call Syntax (UFCS). The compiler
essentially rewrites something.function to function(something),
unless "something" is a struct or class with a method named
"function", in which case it calls the method instead.
More information about the Digitalmars-d-learn
mailing list