2017-09-07 35 views
2

これはあまりにも基本的な質問であれば許して、私はかなりスケーラには新しく、特にこれに固執しています。Scalaの関数への引数として配列を渡すには?

def evenOdd(x : Array[Int] = new Array[Int](6)){ 

} 

それはスロー:よう

evenOdd(1,2,3,4,5,6); //where evenOdd is my function 

関数定義はなります

私は何を達成しようとしていることは、引数として配列をとるので、同様の機能を持つことであり、エラーが関数の引数が多すぎます。関数内の固定サイズとして複数の配列の整数を渡すことはできますか?

答えて

1
def evenOdd(x: Int*) = {...} 

:として

evenOdd(Array(1, 2, 3, 4, 5, 6)) 

又はevenOddを定義します。ただし、関数evenOddは整数の配列を受け入れます。

  1. が整数の可変引数を受け入れるようにevenOdd機能を行います。

    あなたはこれを解決するには、2つの方法があります。これの欠点は、あなたがこのためにデフォルト値を割り当てることができないということです。

    def evenOdd(x : Int*)

  2. evenOddの入力偶然には変更はなく、代わりに整数の配列に渡してはいけません:

    evenOdd(Array(1,2,3,4,5,6))

+1

varargsパラメータにデフォルト値を割り当てることができないため、#1はコンパイルされません。 – jwvh

+0

あなたは正しいです。投稿を編集させてください。 –

関連する問題