2011-04-12 26 views
7

मेरे आईडीई के टूलींग पता चलता है कि xs निम्नलिखित स्निपेट में Int* टाइप किया है:क्या सेक [टी] और टी * के बीच स्कैला में कोई अंतर है?

def accept(xs: Int*) = true 

भाषा संदर्भ, तथापि, का कहना है कि बार-बार होने पैरामीटर घोषणा की है कि के रूप में T* टाइप Seq[T] है। Int* और Seq[Int] के बीच कोई अंतर है?

उत्तर

8

वे अलग हैं, और यह कहीं भी बग और खेदजनक विशेषता के बीच है जो टी * प्रकार हस्ताक्षरों में लीक हो जाता है।

Repeated parameter typed as T* rather than Seq[T]

+1

मान लिया जाये कि वहाँ मौजूदा कोड को तोड़ने के बारे में कोई चिंता का विषय था, कल्पना विधि बाहर दोहराया मापदंडों के प्रकार के बारे में क्या कहेंगे? क्या यह ज्ञात है या क्या यह बहस का विषय भी है? मुझे लगता है कि 'def f (टी: टी *) = टी' में वापसी प्रकार 'सेक [टी]' होना चाहिए। – huynhjl

+2

यह निर्विवाद रूप से Seq [टी] होना चाहिए। – extempore

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