Scala Array构造函数?
发布时间:2020-12-16 09:31:10 所属栏目:安全 来源:网络整理
导读:scala val a = Array [Double] (10)a: Array[Double] = Array(10.0)scala val a = new Array [Double] (10)a: Array[Double] = Array(0.0,0.0,0.0) 为什么这两个表达式有不同的语义? 解决方法 这有点混乱,但Scala有类的概念,您可以创建基本上是类的单例实
scala> val a = Array [Double] (10) a: Array[Double] = Array(10.0) scala> val a = new Array [Double] (10) a: Array[Double] = Array(0.0,0.0,0.0) 为什么这两个表达式有不同的语义? 解决方法
这有点混乱,但Scala有类的概念,您可以创建基本上是类的单例实例的实例和对象。它还具有伴随类的概念,它是一对类和一个具有相同名称的对象。这种机制允许“类”基本上具有静态方法,否则在Scala中是不可能的。
Array具有类和伴随对象。此外, 问题是在Array对象中应用与Array构造函数不同的语义。 apply方法从指定的对象中创建一个数组,因此,例如,Array(1,2,3)返回一个由对象1,2和3组成的数组。另一方面,构造函数使用指定数组的大小(因此可以创建多维数组),然后将所有插槽初始化为默认值。 所以,基本上 > val a = Array [Double](10)调用Array对象上的apply方法,它创建一个包含给定对象的新数组。> val a = new Array [Double](10)调用Array构造函数,它创建一个具有10个插槽的新数组,所有这些都初始化为默认值0.0。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |