के साथ उपयोग किया जाता है तो मैं स्कैला के लिए बिल्कुल नया हूं। मैं समझने की कोशिश कर रहा हूं कि कैसे/अगर एक अभिनेता को संदेश के हिस्से के रूप में बंद होने पर स्कैला गतिशील बाध्यकारी करता है।स्केल परिवर्तनीय बाध्यकारी जब अभिनेता
मैं स्कैला 2.9 के साथ अक्का 1.2 का उपयोग कर रहा हूं।
मैं निम्नलिखित कोड खंड (http://gleichmann.wordpress.com/2010/11/15/functional-scala-closures/ से संशोधित)
var minAge = 18
val isAdult = (age: Int) => age >= minAge
actor ! answer(19, isAdult)
minAge = 20
actor ! answer(19, isAdult)
अभिनेता तरफ है, यह केवल पहले पैरामीटर के लिए isAdult लागू होता है और परिणाम प्रिंट करता है। स्काला के बाद से उपयोग करता है गतिशील बंधन (ताकि मुझे बताया गया था), मैं
true
false
अपेक्षा की होगी लेकिन किसी भी तरह परिणाम
false
false
है तो यह सच है कि स्केला चर स्थिर बंधन और 18 ले जा रहा है है दोनों उत्तर संदेशों के लिए minAge के मूल्य के रूप में? संदेश में बंद करने के दौरान गतिशील बाध्यकारी व्यवहार रखने का कोई तरीका है?
धन्यवाद!
धन्यवाद! यह समझ में आता है। तो आडल्ट का आलसी मूल्यांकन किया गया है और जब तक अभिनेता वास्तव में संदेश को संभाल नहीं लेता तब तक वेरिएबल्स कभी बंधे नहीं होते हैं .. ऐसा लगता है कि अगर मैंने minAge = 20 चलाने से पहले अपनी पहली क्वेरी से उत्तर देने का इंतजार किया था, तो मुझे परिणाम मिलने की उम्मीद है। – royalflush
यह सही है, लेकिन कृपया इसे कभी याद न करें ;-) गंभीरता से, यदि आप उनके बीच परिवर्तनीय स्थिति साझा करना चाहते हैं तो आप अभिनेताओं का उपयोग नहीं करेंगे। दुर्भाग्यवश, स्कैला "बाय-वैल्यू" को बंद करने का कोई तरीका नहीं प्रदान करती है, इसलिए केवल एक चीज जो आप कर सकते हैं वह मैन्युअल रूप से सुनिश्चित करता है कि आपके द्वारा बंद की गई हर चीज़ 'वैल' है। –
मुझे लगता है कि तर्क एक मशीन मामले पर सच है। लेकिन रिमोट अभिनेताओं के साथ, क्यों नहीं? उदाहरण के लिए मैं दो कलाकारों के बीच वितरित स्थिति को सिंक्रनाइज़ करने के लिए एक संदेश भेज सकता हूं? – royalflush