当前位置:  开发笔记 > 编程语言 > 正文

Scala Array构造函数?

如何解决《ScalaArray构造函数?》经验,为你挑选了2个好方法。

这有点令人困惑,但Scala有的概念,你可以创建实例和对象,它们基本上是一个类的单例实例.它还具有伴随类的概念,它是一对类和具有相同名称的对象.这种机制允许"类"基本上具有静态方法,否则在Scala中是不可能的.

Array同时拥有一个和一个伴侣对象.此外,该Array对象具有一种apply方法.apply意味着你可以创建一个对象Array(arg).但因为Array是一个伴侣类,它还有一个构造函数,可以通过更常用的机制调用new Array(arg).

问题是applyArray对象中具有与Array构造函数不同的语义.该apply方法创建一个数组出指定的对象的,所以,例如,Array(1,2,3)返回一个由对象的数组1,23.另一方面,构造函数接受指定数组维度大小的参数(因此可以创建多维数组),然后将所有插槽初始化为默认值.

所以,基本上:

val a = Array [Double] (10)applyArray 对象上调用该方法,该方法创建一个包含给定对象的新数组.

val a = new Array [Double] (10)调用Array构造函数,该构造函数创建一个包含10个插槽的新数组,全部初始化为默认值0.0.


Rex Kerr.. 11

new Array[Double](10)应该等同new double[10]于Java.

但Scala还为与其集合类相对应的单例提供了便捷方法,Array也不例外.

因此,如果你可以说List(1,2,3,4,5)你自己也可以这么说Array(1,2,3,4,5).你可以.

但它确实让人处于稍微尴尬的位置,取决于是否添加了这个词而产生了相当不同的结果new.考虑到竞争的利益,我认为这是整体上最好的解决方案,但它确实需要一点点习惯.



1> mipadi..:

这有点令人困惑,但Scala有的概念,你可以创建实例和对象,它们基本上是一个类的单例实例.它还具有伴随类的概念,它是一对类和具有相同名称的对象.这种机制允许"类"基本上具有静态方法,否则在Scala中是不可能的.

Array同时拥有一个和一个伴侣对象.此外,该Array对象具有一种apply方法.apply意味着你可以创建一个对象Array(arg).但因为Array是一个伴侣类,它还有一个构造函数,可以通过更常用的机制调用new Array(arg).

问题是applyArray对象中具有与Array构造函数不同的语义.该apply方法创建一个数组出指定的对象的,所以,例如,Array(1,2,3)返回一个由对象的数组1,23.另一方面,构造函数接受指定数组维度大小的参数(因此可以创建多维数组),然后将所有插槽初始化为默认值.

所以,基本上:

val a = Array [Double] (10)applyArray 对象上调用该方法,该方法创建一个包含给定对象的新数组.

val a = new Array [Double] (10)调用Array构造函数,该构造函数创建一个包含10个插槽的新数组,全部初始化为默认值0.0.



2> Rex Kerr..:

new Array[Double](10)应该等同new double[10]于Java.

但Scala还为与其集合类相对应的单例提供了便捷方法,Array也不例外.

因此,如果你可以说List(1,2,3,4,5)你自己也可以这么说Array(1,2,3,4,5).你可以.

但它确实让人处于稍微尴尬的位置,取决于是否添加了这个词而产生了相当不同的结果new.考虑到竞争的利益,我认为这是整体上最好的解决方案,但它确实需要一点点习惯.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有