我是scala的新手,并希望使用类参数将值分配给相同的字段。在Java中,我们在构造函数中执行类似的操作:
public class Test{
private final int value;
public Test(int value){
this.value = value;
}
}
现在,我试图在Scala
中做类似的事情:
class Test(value: Int){
val value = ..WHAT..value //Is there a way to assign a parameter value to a field with the same name?
}
object Test{
def testMethod = //access value and do something with it.
}
我们可以做一些类似于我们在Java中可以做的事情吗?
答案 0 :(得分:1)
Scala为创建此类成员提供了更短的语法 - 只需在类参数列表中的参数名称前添加关键字val
即可。您还可以添加修饰符(例如private
):
scala> :paste
// Entering paste mode (ctrl-D to finish)
class Test(private val value: Int)
object Test {
def testMethod(t: Test) = t.value
}
// Exiting paste mode, now interpreting.
defined class Test
defined module Test
scala> Test.testMethod(new Test(5))
res1: Int = 5
答案 1 :(得分:1)
如果您不喜欢公开私人会员,您可以这样做:
class A {
private var _quote = ""
def quote = _quote
def quote_=(newQuote: String) = _quote = newQuote
}
您可以通过拨打quote
来获取getter和setter。