无对象函数
函数re
、im
有个小问题,为了调用函数,我们必须在函数名称后面加上一对空括号,如这个例子:
object ComplexNumbers {
def main(args: Array[String]) {
val c = new Complex(1.2, 3.4)
println("imaginary part: " + c.im())
}
}
最好能够在不需要加括号的情况下取得实虚部,这样便像是在取得属性。Scala完全可以做到这件事,需要的只是在定义函数的时候不要定义参数。这种函数跟零参数函数是不一样的,不论是定义或是调用,它们都没有括号跟在名字后面。我们的Complex
可以改写成:
class Complex(real: Double, imaginary: Double) {
def re = real
def im = imaginary
}