scala:错误:递归值需要类型

Cha*_* Li 2 recursion scala

我正在尝试编写一小段scala代码来理解无括号的方法和postfixOps.
这是我的代码:

import scala.language.postfixOps

object Parentheses {
    def main(args: Array[String]) {
        val person = new Person("Tom", 10);
        val tomAge = person getAge
        println(tomAge)
    }


    class Person(val name: String, val age: Int) {
        def getAge = {
            age
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,在编译时,我遇到了一个问题:

error: recursive value tomAge needs type
        println(tomAge)
Run Code Online (Sandbox Code Playgroud)

如果我将方法调用替换person getAgeperson.getAge,程序将正确运行.
那为什么函数调用person getAge失败了?

Leo*_*o C 6

应谨慎使用Postfix表示法 - 请参阅部分infix notationpostfix notation 此处.

此样式不安全,不应使用.由于分号是可选的,因此编译器会尝试将其视为中缀方法(如果可以的话),可能会从下一行中获取一个术语.

如果你附加一个;,你的代码将起作用(带有编译器警告)val tomAge = person getAge.