Thanks for the feedback everyone. It makes sense how things currently are
for Rust.

Keep up the great work!

--
Ziad


On Sun, Mar 23, 2014 at 4:54 PM, Liigo Zhuang <com.li...@gmail.com> wrote:

> +1
> 2014年3月24日 上午5:46于 "Patrick Walton" <pcwal...@mozilla.com>写道:
>
> On 3/23/14 2:19 PM, Ziad Hatahet wrote:
>>
>>> You wouldn't probably use this for each and every method, but what it
>>> gives you is Go-style duck typing.
>>>
>>> Sure you can define a trait, but what if the struct you to pass to your
>>> function does not implement it? I guess you would have to implement a
>>> wrapper around it manually then.
>>>
>>
>> I don't think Go-style duck typing turns out to be that useful in
>> practice to solve this problem, because the chances that two
>> independently-developed libraries that wanted to expose some functionality
>> on their object, say, `Munge()`, would give the function exactly the same
>> name and give exactly the same types to its arguments, (in the same order!)
>> is astronomically small.
>>
>> In reality the primary benefit of Go-style duck typing is the ability to
>> avoid having to type the name of the trait you're implementing at the
>> implementation site. What you give up for this is the ability to provide
>> extension methods: i.e. implementation of a trait for a type *outside* of
>> the package that defined the type. This is a huge downside, and I don't
>> think it's worth it on the whole; this is why Rust's traits are designed
>> the way they are.
>>
>> Patrick
>>
>> _______________________________________________
>> Rust-dev mailing list
>> Rust-dev@mozilla.org
>> https://mail.mozilla.org/listinfo/rust-dev
>>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to