2016-08-04 5 views
0

私はScalaにとって非常に新しいです。私はPaul ChiusanoとRúnarBjarnasonによってscalaで関数型プログラミングと呼ばれる本を読んでいます。これまでは面白いと思っています。 、誰もがそれが何であるかを私に説明したり、これを理解するためにいくつかのオンラインドキュメントに私を指すことができます。ScalaのA *とは何ですか?

は私が(*として)読み込む方法を知りたいのです

def apply[A] (as:A*) : List[A] = 
    if(as.isEmpty) Nil 
    else Cons(as.head,apply(as.tail: _*)) 

以下を参照してください?あなたの助け

+0

SOのドキュメント(ベータ版)プロジェクトの[機能ページ](http://stackoverflow.com/documentation/scala/477/functions#t=201608041631299474664)には、varvargsエントリがあります。 – jwvh

答えて

5

ため

おかげでそれは可変引数だ、または引数(0以上)の可変数。例えば。

def takesNStrings(strings: String*) { 
    // you can now iterate through the zero or more strings... 
} 

一部examples here

1

それは可変引数です。

def f[A](xs: A*) = xs.foreach(println) 

この関数を呼び出す方法はいくつかあります。パラメータなしで

f() 

複数のパラメータを渡す(任意の数のパラメータを使用することができる):

f(1, 2, 3, 4) 

シーケンスを渡す:

val a = Seq(1,2,3,4) // other collections work as well 
f(a: _*) 

xsのタイプfの内部はSeq[A]です。

関連する問題