Valas的封口如何映射到Genie?

XZS*_*XZS 6 lambda closures vala genie

瓦拉教程有一个使用匿名方法有关的DBus例子.

Bus.own_name (BusType.SESSION, "org.example.DemoService", /* name to register */
              BusNameOwnerFlags.NONE, /* flags */
              on_bus_aquired, /* callback function on registration succeeded */
              () => {}, /* callback on name register succeeded */
              () => stderr.printf ("Could not acquire name\n")); /* callback on name lost */
Run Code Online (Sandbox Code Playgroud)

我试图在Genie中重写此代码,但无法设法转换最后两行.该精灵教程对如何使用闭包来定义一个事件处理的例子.

f.my_event += def (t, a)
    print "event was detected with value %d", a
Run Code Online (Sandbox Code Playgroud)

如何在Genie的方法调用中使用匿名方法定义?

小智 4

我认为没有办法。您必须使用“def”调用另一个进程。

Bus.own_name (BusType.SESSION, "org.example.DemoService", 
          BusNameOwnerFlags.NONE, 
          on_bus_aquired, 
          reg,
          err);

def reg()
    pass

def err()
    print "error"
Run Code Online (Sandbox Code Playgroud)