2013-01-22 46 views
21

के लिए वर आर्ग सूची से परिवर्तित मुझे लगता है कि ईमेल कार्यप्रणाली निम्नलिखित रूप से प्रदान करता है एक प्लगइन का उपयोग कर रहा:ग्रूवी विधि कॉल

class SendSesMail { 

    //to 
    void to(String ... _to) { 
     this.to?.addAll(_to) 
     log.debug "Setting 'to' addresses to ${this.to}" 
    } 

} 

प्रलेखन राज्यों वर्ग इस प्रकार कहा जाता है:

sesMail { 
    from "[email protected]" 
    replyTo "[email protected]" 
    to "[email protected]", "[email protected]", "[email protected]" 
    subject "Subject" 
    html "Body HTML" 
} 

में कोड List पते का कोड बनाया गया है और मैं यह समझने की कोशिश कर रहा हूं कि इस सूची को विधि द्वारा अपेक्षित विभिन्न तर्कों में कैसे परिवर्तित किया जाए।

"12 "के साथ सम्मिलित String में कनवर्ट करना काम नहीं करता क्योंकि यह एक अवैध ईमेल पता है। सूची में पुनरावृत्त होने से बचने के लिए और प्रत्येक ईमेल को व्यक्तिगत रूप से भेजने से बचने के लिए मुझे प्रत्येक सूची आइटम को एक अलग पैरामीटर में अलग करने में सक्षम होना चाहिए। ,

def to(String... emails) { 
    emails.each { println "Sending email to: $it"} 
} 

def emails = ["[email protected]", "[email protected]", "[email protected]"] 
to(*emails) 
// Output: 
// Sending email to: [email protected] 
// Sending email to: [email protected] 
// Sending email to: [email protected] 

सूचना है कि to लिए विधि कॉल पर कोष्ठकों अनिवार्य हैं के रूप में अन्यथा to *emails एक गुणा के रूप में पार्स किया जाएगा:

+0

क्या आपको उपरोक्त कोड में कोई त्रुटि हो रही है? –

उत्तर

43

शायद प्रसार ऑपरेटर, *, क्या आप के लिए देख रहे हैं। अधिभारित व्याकरण प्रतीकों की खराब पसंद आईएमओ = पी

+0

मैंने कभी उस संदर्भ में उपयोग किए गए स्प्रेड ऑपरेटर को नहीं देखा है और मैं इसे एक साधारण उदाहरण में काम नहीं कर सका - क्या आप इसे इस्तेमाल करने के कुछ अन्य उदाहरण बता सकते हैं? – SteveD

+0

क्या प्रश्न में कोड चलाना चाहिए क्योंकि यह वैसे भी है (स्प्रेड ऑपरेटर के बिना)? उदाहरण: कोशिश करें: 'def a (स्ट्रिंग ... पी) {p.each {println it}}; ए 'ए', 'बी', 'सी' –

+0

@tim_yates हां। लेकिन मैं _think_ ओपी का मतलब था कि वह कोड स्निपेट दस्तावेज से था, और वह क्या करना चाहता था वह सूची से आया तर्कों के साथ विधि को कॉल करना था। – epidemian