[英]Scala Class Methods
我是编程和Scala的新手。 我不明白这段代码第二行的内容。 我所能理解的是,正在使用Class(Number)作为参数创建方法(添加)。 之后,我将空白。 如果有人可以解释此代码,我将不胜感激。 谢谢
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
创建Number
的实例( (new Number(23))
)。 它可以立即使用,因此下一步是调用add()
方法,该方法返回Number
。 然后我们从Number
实例获得成员变量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
类型,并且Number类包含i
作为公共值(变量)。 因此,您可以执行numberInstance.i
以在Number类中获取Integer的值。
多数民众赞成在这里发生了什么
(new Number(23)).add(new Number(-1)).i
^
所以,最后
23 - 1
是结果。
添加方法采用
i
在其上调用的实例的值,并把它添加到i
被给予作为输入参数,将其与从结果创建一个Number实例实例的值(与包装Number类的数量)。 那就是正在发生的事情。
=
是方法的主体。 对于仅一个语句的方法,不需要花括号。 还可以省略返回类型,因为编译器可以弄清楚返回类型应该是什么(在这种情况下为Number
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.