ast*_*y13 5 arrays constructor scala
我在Scala(2.9.1)中定义了一个类,如下所示:
class A(val neighbors: Array[Option[A]]) {
def this() = this(new Array[Option[A]](6))
// class code here ...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我想用它初始化时,邻居被初始化为null None.我试过这个,但是编译器抱怨错误消息"找不到:输入None":
class A(val neighbors: Array[Option[A]]) {
def this() = this(new Array[None](6))
// class code here ...
}
Run Code Online (Sandbox Code Playgroud)
我可以做到这一点,它提供了所需的行为,但它似乎并不优雅:
class A(val neighbors: Array[Option[A]]) {
def this() = this(Array(None, None, None, None, None, None))
// class code here ...
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,最好的方法是什么?
编辑:我指的new A()是调用时的行为.
Mor*_*itz 10
最简单的方法是
Array.fill(6)(None:Option[A])
Run Code Online (Sandbox Code Playgroud)
另外,您可以更改类的构造函数以采用如下默认参数:
class A(val neighbors: Array[Option[A]] = Array.fill(6)(None))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1717 次 |
| 最近记录: |