functions aws lambda closures vala genie

functions - python lambda aws



¿Cómo se relacionan los cierres de Valas con Genie? (2)

Creo que no hay manera. Debe llamar a otro proceso usando "def".

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

El Tutorial de Vala tiene un ejemplo sobre DBus usando métodos anónimos .

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 */

Estoy intentando reescribir este código en Genie, pero no pude convertir las dos últimas líneas. El Tutorial de Genie solo tiene un ejemplo sobre cómo usar un cierre para definir un controlador de eventos .

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

¿Cómo uso definiciones de métodos anónimos en una llamada a método con Genie?


Esto no es posible en este momento:

https://bugzilla.gnome.org/show_bug.cgi?id=746704

Actualmente, Genie solo admite la sintaxis lambda en desuso para las señales (+ =). Este parche proporciona soporte lambda en la mayoría de las construcciones, el único requisito es que las llaves y los paréntesis tengan que estar sangrados en las construcciones de líneas múltiples.