&引用;“def类型”;groovy类中的声明

&引用;“def类型”;groovy类中的声明,groovy,Groovy,突然我意识到我会写作 class Person { def String name } 我的问题是-上面提供的代码和经典代码有什么区别: class Person { String name } 为什么第一种形式会存在?没有区别。将def添加到类型定义的开头不会产生任何效果。但是,它是解析器允许的 检查此类内容的一种方法是启动groovyConsole,然后运行AST浏览器(用于脚本) 显示: public class Person extends java.lang.Obj

突然我意识到我会写作

class Person {
     def String name
}
我的问题是-上面提供的代码和经典代码有什么区别:

class Person {
   String name
}

为什么第一种形式会存在?

没有区别。将
def
添加到类型定义的开头不会产生任何效果。但是,它是解析器允许的

检查此类内容的一种方法是启动groovyConsole,然后运行AST浏览器(用于脚本)

显示:

public class Person extends java.lang.Object { 

    private java.lang.String name 

}

没有区别。将
def
添加到类型定义的开头不会产生任何效果。但是,它是解析器允许的

检查此类内容的一种方法是启动groovyConsole,然后运行AST浏览器(用于脚本)

显示:

public class Person extends java.lang.Object { 

    private java.lang.String name 

}

嗯,对我来说这是解析器允许的似乎很奇怪,但是非常感谢你教我在这种情况下使用AST浏览器。@shabunc不用担心,AST浏览器有时非常方便,可以查看发生了什么:-)你可能知道所有这些,但可能有一些有趣的事情。对我来说这是解析器允许的,似乎很奇怪,但是非常感谢你教我在这种情况下使用AST浏览器。@shabunc不用担心,AST浏览器有时非常方便,可以查看正在发生的事情:-)你可能知道所有这些,但可能会感兴趣