www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Interfaces

reply alexander Patapoff <awpatapoff gmail.com> writes:
is there a way for me to do this in D? In java, one is able to 
create a new instance of an interface.

interface Action
{
   void actions(T t);
}

class testAction
{
   this()
    {
     Action action = new Action()
        {
          void actions(T t){...}
        }
    }

}

I found this feature really useful in java. Is there any way I 
can duplicate this process, without the mixin func?
Apr 09 2016
parent reply ag0aep6g <anonymous example.com> writes:
On 09.04.2016 10:45, alexander Patapoff wrote:
 is there a way for me to do this in D? In java, one is able to create a
 new instance of an interface.

 interface Action
 {
    void actions(T t);
 }

 class testAction
 {
    this()
     {
      Action action = new Action()
         {
           void actions(T t){...}
         }
     }

 }

 I found this feature really useful in java. Is there any way I can
 duplicate this process, without the mixin func?
There is a somewhat obscure feature which lets you declare and instantiate a class at the same time: ---- interface Action { void actions(int x); } void main() { Action action = new class Action { void actions(int x) {/* ... */} }; } ---- http://dlang.org/spec/class.html#anonymous
Apr 09 2016
parent alexander Patapoff <awpatapoff gmail.com> writes:
On Saturday, 9 April 2016 at 08:59:13 UTC, ag0aep6g wrote:
 On 09.04.2016 10:45, alexander Patapoff wrote:
 [...]
There is a somewhat obscure feature which lets you declare and instantiate a class at the same time: ---- interface Action { void actions(int x); } void main() { Action action = new class Action { void actions(int x) {/* ... */} }; } ---- http://dlang.org/spec/class.html#anonymous
Yaaay! thank you!
Apr 09 2016