2015-06-26 4 views
34

पर विचार करें नीचे दिए गए कोड:स्कैला सरग विधि में स्कैला सरणी कैसे पास करें?

private def test(some:String*){ 

} 

private def call() { 
    val some = Array("asd", "zxc") 
    test(some) 
} 

यह प्रिंट expect String, found Array[String] क्यों? क्या स्काला varargs सरणी नहीं हैं?

नोट

के बारे में स्काला varargs मैं स्टैक ओवरफ़्लो पर कई सवाल मिल गया है, लेकिन उन सभी को बुला जावा varargs तरीकों के बारे में या परिवर्तित स्काला सरणियों को सूचीबद्ध करता है के बारे में कर रहे हैं। आपकी अपेक्षा के

उत्तर

55

संलग्न :_* पैरामीटर के लिए test में इस

test(some:_*) 

की तरह और यह काम करना चाहिए।

आपको आश्चर्य तो क्या उस जादुई :_* करता है, this question को देखें।

25

यह सरल है:

def test(some:String*){} 

def call() { 
    val some = Array("asd", "zxc") 
    test(some: _*) 
} 
संबंधित मुद्दे