6
私は現在Functional Programming In ScalaScalaはVariadic関数でアスタリスクを強調していますか?
これは私がas.tail: _*
で: _*
を省略すると、Scalaはas.tail
がここSeq[A]
あるので、理にかなっている型の不一致のために不平を言うList[A]
def apply[A](as: A*): List[A] =
if (as.isEmpty) Nil
else ::(as.head, apply(as.tail: _*))
でapply
の擬似実装であるが、以下のよ。
しかし、_*
は正確にここで何をしますか?
編集::などのため
正しい用語シーケンスワイルドカード
興味深いを入力したかのように
その後、
作品を持っている場合。だから私は、 '_ *'は別の複雑なアンダースコアルールではなく、**私が理解できなかった特別なコンストラクト**だと思うのは正しいですか?私は、_existential type_を除いて、型に注釈を付けるためにアンダースコアが使用される別の例にまだ遭遇していません。ありがとう –
"シーケンス引数" http://www.scala-lang.org/files/archive/spec/2.11/06-expressions.html#function-applications –
"パターンシーケンス"の "シーケンスワイルドカード"、http: //www.scala-lang.org/files/archive/spec/2.11/08-pattern-matching.html#pattern-sequences –