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值被给定为输入参数,以它和从结果创建许多实例(包装用数数类)。这就是发生的事情。

+0

这部分是干什么的? =新号码(我+ num.i) –

+0

@GauravSharma,你的意思是'this'部分? – pamu

+0

= new Number(i + num.i) –

创建的Number实例((new Number(23)))。它可以立即使用,因此下一步就是调用add()方法,该方法返回Number。 然后我们从Number实例

之后=是该方法的主体。对于只有一个语句的方法,不需要大括号。返回类型也可以省略,因为编译器可以确定返回类型应该是什么(在这种情况下为Number)。