2012-01-25 3 views
6

में कार्यों के बीच एम्पर्सेंड का अर्थ क्या है, मुझे स्कैला में सिंटैक्स का एक अजीब टुकड़ा सामना करना पड़ा है, क्या कोई मुझे यह समझा सकता है कि एम्पर्सेंड का मतलब क्या है जब अन्य कार्यों के लिए तर्क के रूप में पारित कार्यों को पूरा किया जाता है?स्कैला

partialUpdate { 
    SetHtml(currentAmountId, 
    Text(leadingBid.toString)) & 
    SetHtml(nextAmountId, 
    Text(minimumBid.toString)) & 
    SetHtml(winningCustomerId, winningCustomer) & 
    SetValueAndFocus(amountId,"") 
} 

यह मुझे समझाने के लिए धन्यवाद।

+1

क्या यह लिफ्ट से संबंधित है? यदि ऐसा है, तो कृपया इसे अपने प्रश्न और शायद शीर्षक में स्पष्ट करें। यह स्केल मानक पुस्तकालय में प्रतीत नहीं होता है। – ziggystar

उत्तर

11

&Lift framework कि दो आदेशों concatenates में a method on JsCmd है। यह सामान्य स्कैला तारों पर काम नहीं करेगा।

1

इस मामले में, ऐसा लगता है कि यह SetHtml कॉल के आउटपुट को जोड़ रहा है।

क्या यह इस तरह स्पष्ट दिखता है?

partialUpdate { 
    SetHtml(currentAmountId, Text(leadingBid.toString)) & 
    SetHtml(nextAmountId, Text(minimumBid.toString)) & 
    SetHtml(winningCustomerId, winningCustomer) & 
    SetValueAndFocus(amountId,"") 
} 
+0

तो स्कैला में स्ट्रिंग्स पर कॉन्सटेनेशन ऑपरेटर के रूप में काम करता है? – Jarek

+2

संख्या और सेटहैमेट द्वारा जो कुछ भी लौटाया जाता है उसका एक तरीका है। यदि यह एक स्ट्रिंग है, तो यह एक अंतर्निहित द्वारा जोड़ा गया एक तरीका है। यह implicits और overator अधिभार के साथ समस्या है। – Chochos

+1

@ चोकोस: स्वाद निश्चित रूप से भिन्न होते हैं, लेकिन मेरी राय में लिफ्ट, उदाहरण के लिए, Specs2 जैसे कुछ की दृश्यमान मशीनरी के पीछे व्यापक अस्पष्टता के बिना स्वच्छ वाक्यविन्यास प्रदान करने का एक बहुत अच्छा काम करता है। आपको दस्तावेज़ीकरण के साथ थोड़ा और समय बिताना पड़ सकता है, लेकिन यह तर्कसंगत रूप से इसके लायक है। –