有什么办法可以在Scala中创建函数,在其中可以输入各种类型的参数输入?请参考下面的示例代码。我想将以下代码合并为一个函数,该函数可以接受各种数据类型的输入。
例子:
/** */
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_
}
是的。而且您也不需要可变的变量和丑陋的命令式循环:)如果您使用的是scala语法,那么不妨花一两分钟的时间来真正地学习使用该语言:/
def toMatrix[T : ClassTag](a: Array[T], m:Int, n:Int) = a.grouped(n).toArray
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句