Scala类方法
问题描述:
我是新来的编程和Scala。我不明白这段代码的第二行是怎么回事。我所能理解的是一个方法(add)是以Class(Number)作为参数创建的。之后,我画空白。我真的很感激,如果有人能解释这段代码。感谢Scala类方法
scala> class Number(val i:Int){
def add(num: Number) = new Number(i + num.i)
}
scala> (new Number(23)).add(new Number(-1)).i
res18: Int = 22
答
首先得到成员变量i
您需要了解这里
1几样东西)add
是类Number
的方法。因此,可以在Number
类的实例(对象)上调用add方法。
那是什么这里发生
(new Number(23)).add(new Number(-1)).i
^
2)add
方法需要Number
对象作为输入参数。所以,你可以Number
实例添加到add
方法
(new Number(23)).add(new Number(-1)).i
^
3)add
方法方法返回Number
类型和数量类包含i
作为公共VAL(变量)。所以,你可以做numberInstance.i
得到的数类
那是什么在这里
(new Number(23)).add(new Number(-1)).i
^
发生所以,最后
23 - 1
是结果的整数的值。
add方法需要在其上调用的实例的
i
值并将其添加到实例的i
值被给定为输入参数,以它和从结果创建许多实例(包装用数数类)。这就是发生的事情。
答
创建的Number
实例((new Number(23))
)。它可以立即使用,因此下一步就是调用add()
方法,该方法返回Number
。 然后我们从Number
实例
答
之后=
是该方法的主体。对于只有一个语句的方法,不需要大括号。返回类型也可以省略,因为编译器可以确定返回类型应该是什么(在这种情况下为Number
)。
这部分是干什么的? =新号码(我+ num.i) –
@GauravSharma,你的意思是'this'部分? – pamu
= new Number(i + num.i) –