2014-06-22 6 views
5

Vala Tutorial में example about DBus using anonymous methods है।वैला कैसे जेनी को मानचित्र बंद कर देता है?

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

मैं जेनी में इस कोड को फिर से लिखने की कोशिश कर रहा हूं, लेकिन दो अंतिम पंक्तियों को परिवर्तित करने में सक्षम नहीं हो सका। Genie Tutorial में केवल an example on how to use a closure to define an event handler है।

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

मैं जेनी के साथ विधि कॉल में अज्ञात विधि परिभाषाओं का उपयोग कैसे करूं?

उत्तर

4

मुझे लगता है कि कोई रास्ता नहीं है। आपको "def" का उपयोग करके एक और प्रक्रिया को कॉल करना होगा।

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

def reg() 
    pass 

def err() 
    print "error" 
3

इस पल में संभव नहीं है:

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

वर्तमान में जिन्न केवल संकेत (+ =) के लिए हटा दिया लैम्ब्डा वाक्यविन्यास समर्थन करते हैं। यह पैच अधिकांश संरचनाओं में लैम्ब्डा समर्थन प्रदान करता है, केवल आवश्यकता है कि ब्रेसिज़ और माता-पिता को एकाधिक लाइन संरचनाओं पर इंडेंट-संतुलित होना चाहिए।

संबंधित मुद्दे