When D is not nice

Simen Kjaeraas simen.kjaras at gmail.com
Sun Jul 6 14:05:43 PDT 2008


Frank Benoit <keinfarbton at googlemail.com> wrote:

> String concatenation in Java:
>
> "abc " + a + " bla";
>
> where a is an interface ref.
>
> Ported to D, this look like this:
>
> "abc " ~ (cast(Object)a).toString ~ " bla";
>
> This are 3 steps more:
> 1.) explicit cast to Object (interface/class compatibility!)
> 2.) explicit call to toString
> 3.) put additional parentheses
>
> I would be happy if we could remove all three of this annoying points.



interface A
{
	string opCat(string rhs);
	string opCat_r(string lhs);
}

class B : A
{
	string opCat(string rhs)
	{
		return toString() ~ rhs;
	}

	string opCat_r(string lhs)
	{
		return lhs ~ toString();
	}

	string toString()
	{
		return SomeString;
	}
}

This works for me.

-- Simen



More information about the Digitalmars-d mailing list