duck!
Denis Koroskin
2korden at gmail.com
Sat Oct 16 09:19:02 PDT 2010
On Sat, 16 Oct 2010 00:37:10 +0400, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> I was talking to Walter about Kenji's adaptTo. We both think it's a very
> powerful enabler, but adaptTo is a bland name. After discussing a few
> marketing strategies, I proposed "duck". It's short, simple, and evokes
> "duck typing".
>
> class C
> {
> int draw(){ return 10; }
> }
> interface Drawable
> {
> long draw();
> }
> ...
> auto c = new C;
> auto d = duck!Drawable(c); // awes
>
> Kenji, I'll be looking forward to your submission :o). Would be great to
> allow structs to duck, too!
>
>
> Andrei
There is a lot in common between to and adaptTo (even the original names
are similar). 'to' converts one type to another (unless the two are
implicitly castable) and 'adaptTo' does the same. 'adaptTo' can transform
some types that 'to' can't, and vice versa.
In my opinion, they don't compete but supplement each other. As such I
would prefer merging the two together:
auto c = to!(Drawable)(c); // try casting to Drawable first, return
adaptTo(Drawable) if it fails.
The difference between 'as' and 'to' is subtle yet both names are short
and might be confusing for many people, not only novices. Yet 'as' is
better than 'duck' imo.
More information about the Digitalmars-d
mailing list