在Scala中初始化anytype数组

时间:2015-10-24 19:33:15

标签: scala

如何使用类型A初始化数组以使其长度与其他数组相同? (在这种情况下,A是String或Int)

{{1}}

2 个答案:

答案 0 :(得分:4)

与其他集合类型相比,数组有点特殊。有关更多详细信息,请参阅此可爱文章(http://docs.scala-lang.org/overviews/collections/arrays.html)。

缺点是scala中的Arrays支持泛型(java数组不支持),你需要为泛型类型提供scala.reflect.ClassTag。

function createDynamicGroup(savedSearchId, groupName) {
    var saveSearchObj = nlapiLoadSearch('customer', savedSearchId);
    var initValues = {
        grouptype: 'CustJob', // <-- use this
        dynamic: 'T'
    };
    var goupRecObj = nlapiCreateRecord('entitygroup', initValues);
    goupRecObj.setFieldValue('groupname', groupName);
    goupRecObj.setFieldValue('savedsearch', savedSearchId);
    return nlapiSubmitRecord(goupRecObj);
}

或稍微简洁一些。

Welcome to Scala version 2.11.7 (OpenJDK 64-Bit Server VM, Java 1.8.0_65).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import scala.reflect.ClassTag
import scala.reflect.ClassTag

scala> def arrayOfSameTypeAndSize[A](a: Array[A])(implicit ct: ClassTag[A]): Array[A] = new Array(a.size)
arrayOfSameTypeAndSize: [A](a: Array[A])(implicit ct: scala.reflect.ClassTag[A])Array[A]

scala> val x: Array[Int] = arrayOfSameTypeAndSize(Array(1,2,3))
x: Array[Int] = Array(0, 0, 0)

scala>

答案 1 :(得分:1)

您正在寻找Array#clone