2016-05-06 23 views
0

さまざまなタイプのパラメータ入力を入力できるスカラー関数を作成する方法はありますか?以下のサンプルコードを参照してください。以下のコードを入力用のさまざまなデータ型を受け入れる1つの関数にしたいと思います。さまざまな入力データ型を持つスカラ関数

例:

/** */ 
def toMatrix(A: Array[Double], m:Int, n:Int): Array[Array[Double]] = { 
    var A_ = Array.apply(A.slice(0,n),A.slice(n*1,n*1+n)) 
    for (i <- 2 to (m-1)){ 
     A_ = A_ ++ Array(A.slice(n*i,(n*i)+n)) 
     } 
    A_ 
} 


/** */ 
def toMatrixInt(A: Array[Int], m:Int, n:Int): Array[Array[Int]] = { 
    var A_ = Array.apply(A.slice(0,n),A.slice(n*1,n*1+n)) 
    for (i <- 2 to (m-1)){ 
     A_ = A_ ++ Array(A.slice(n*i,(n*i)+n)) 
     } 
    A_ 
} 

/** */ 
def toMatrixBoolean(A: Array[Boolean], m:Int, n:Int) = { 
    var A_ = Array.apply(A.slice(0,n),A.slice(n*1,(n*1)+n)) 
    for (i <- 2 to (m-1)){ 
     A_ = A_ ++ Array(A.slice(n*i,(n*i)+n)) 
     } 
    A_ 
} 

答えて

3

はい。そして、あなたはまた、可変変数と醜い不可欠ループを必要としない:) あなたはScalaの構文を使用している場合は、同様の言語を使用して、実際に学習する瞬間または2を取るかもしれません:/

def toMatrix[T : ClassTag](a: Array[T], m:Int, n:Int) = a.grouped(n).toArray 
1

明らかにあなたが型パラメータ化、またはJavaの世界では、ジェネリック医薬品について話しています。あなたは行かなければならないし、それについて読むべきである - インターネット上の多くの情報とその件に関する書籍がある。 alvinalexander.comからのいくつかの例:

http://alvinalexander.com/scala/scala-classes-using-generic-types-examples

私は個人的にはマーティン・オーダーズキーらがあなたにScalaではブックプログラミングをお勧めします。今は少し古いですが、それは完全に書かれており、徹底的に言語をカバーしています。

関連する問題