2015-11-22 5 views
5

मैं हैक्सफ्लिक्सेल के लिए एक ट्यूटोरियल का अनुसरण कर रहा हूं जो हक्स भाषा का उपयोग करता है। अब मुझे हक्स में कोई अनुभव नहीं है, लेकिन मैंने ट्यूटोरियल को बहादुर करने का फैसला किया क्योंकि मुझे जावा और हैक्स में अनुभव है क्योंकि एक भाषा जावा के समान ही दिखती है।हैक्स में अन्य ऑपरेटर उपयोग और अन्य परिवर्तनीय प्रकार से संबंधित प्रश्न

अभी तक, यह आसानी से चल रहा था। हालांकि, मैं कोड के इस टुकड़े में आए और मैं कई प्रश्न हैं:

class FSM 
{ 
    public var activeState:Void->Void; 

    public function new(?InitState:Void->Void):Void 
    { 
     activeState = InitState; 
    } 

    public function update():Void 
    { 
     if (activeState != null) 
      activeState(); 
    } 
} 

अब मैं समझता हूँ कि यह एक वर्ग FSM कहा जाता है और एक चर activeState कहा जाता है।

यहाँ मेरी प्रश्न हैं:

  1. activeState के प्रकार क्या है? मैं समझूंगा कि activeState:Void जैसा कुछ था लेकिन -> क्या करता है? क्या यह एक सूचक के रूप में प्रयोग किया जाता है? क्या यह एक शून्य सूचक है जो किसी अन्य शून्य चर को इंगित करता है?

  2. से पहले ? क्या संकेत करता है?

  3. यदि कथन के बाद, activeState कोष्ठक का उपयोग करके फ़ंक्शन की तरह कहा जा रहा है। हालांकि, activeState एक चर है और एक समारोह नहीं है। तो अगर कथन वास्तव में क्या करता है?

इसके अलावा एक और सवाल:

public var playerPos(default, null):FlxPoint; 

मैं playerPos को समझने FlxPoint वर्ग का एक उदाहरण है, लेकिन default और null क्या क्या करता है?

उत्तर

9
  1. प्रकार Void->Void है - यह एक function type एक समारोह है कि कोई तर्क Void रिटर्न लेता है और है, इस मामले में।

  2. ?optional argument इंगित करता है। इस मामले में यह new(InitState:Void->Void = null) लिखने के बराबर है।

  3. activeState एक चर है, लेकिन यह एक फ़ंक्शन संग्रहीत करता है - जैसा कि आपने अनुमान लगाया है, activeState() इसे कॉल करता है।

(default, null) इंगित करता है कि playerPos एक property है। default के साथ पहुंच पहुंच पहचानकर्ता और null लेखन पहुंच पहचानकर्ता के रूप में, यह केवल उस कक्षा के बाहर पढ़ा जाता है जिसे परिभाषित किया गया है।

+0

साफ़ और संक्षिप्त। धन्यवाद! –

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