Delegator

bioinfornatics bioinfornatics at fedoraproject.org
Sat Mar 3 10:33:21 PST 2012


Le samedi 03 mars 2012 à 19:18 +0100, Jacob Carlborg a écrit :
> On 2012-03-03 17:50, bioinfornatics wrote:
> > Le samedi 03 mars 2012 à 17:42 +0100, bioinfornatics a écrit :
> >> hi,
> >> In ruby we can delegate some method. by example:
> >> ---- Ruby ----
> >> class MineArray
> >>    include Forwardable
> >>    def_delegators: @array, :[], :[]=, :each_with_index, :length
> >>
> >>    def initialize( array )
> >>      @array = array
> >>    end
> >> end
> >> -------------
> >>
> >> this code delegate opIndexAssign opIndex, length ... attribute to his
> >> member.
> >>
> >> This save time, bug and line. You do not to have to write a code as:
> >> void opIndexAssign( size_t index, T item){
> >> 	array[index] = item;
> >> }
> >>
> >> thanks
> >>
> > I miss the question ^^
> >
> > can w do same in D ?
> >
> > thanks
> 
> I would say "yes", but not with the same pretty syntax. Something like this:
> 
> class MineArray
> {
>      mixin delegates!(array, "opIndexAssign", "opIndex");
> }
> 
> Just implement "delegates" to generate the given functions and forward 
> them to "array".
> 

they are a way to create a decorator as @delgator for able to this
pretty ?




More information about the Digitalmars-d-learn mailing list