Я только начал изучать Скала, и я заметил, что :
используется во многих местах. В большинстве случаев использование :
имеет смысл, например. после имен параметров или деклараций метода. Следующее использование меня смущает, однако:Что означает: означает значение после Scala?
val a = Seq[String]("a", "b")
a :+ "c"
или
def myMethod(varargs: String*) {
// ...
}
val a = Seq[String]("a", "b", "c")
myMethod(a:_*)
Что именно это :
делать в этих случаях? Почему я не могу позвонить a._*
напрямую?
Спасибо. Как это говорит: _ * *? Если бы я хотел сам реализовать эту функциональность, как бы мне это сделать? – Max
+1 Заметим, что любой метод, заканчивающийся на '+', является право-ассоциативным. –
@Max Посмотрите на [Daily Scala: Varargs] (http://daily-scala.blogspot.nl/2009/11/varargs.html), чтобы узнать, как сделать свой собственный метод, который принимает переменное количество аргументов. – Jesper