Groovy 静态类型 VS 动态类型

可以在静态类型还是动态类型之间进行选择是groovy的一项关键优势。

在web上有大量关于静态类型好还是动态类型好的讨论。换句话说,立场不同,观点也不同。

静态类型为性能优化、编译时安全检查和IDE支持提供更多有用的帮助,也显示变量或者方法参数相关的附加信息及方法重载,静态类型也是从反射获取有用信息的前提。 动态类型,在另一方面,这不仅仅便于延迟程序员编写一些特定的脚本,也对保护和规避类型有用,假设从一个方法调用的结果中获取到一个对象,并且必须将这个对象作为参数不做任何修改的传递给别的方法:[code]def node = document.findMyNode()

log.info node db.store node
[/code]在这个例子中,对node的类型和包名称是不感兴趣的,这样可以节省很多工作——类型的声明,导入需要的包。你只需要传达:“就只做这些事”。

动态类型第二个有用的地方是在一个对象上进行没有固定类型的方法调用。

对于有java背景的程序员来说,在开始使用groovy时直接使用静态类型是十分常见 的,并且逐步使用更多的动态类型,这是合理的,因为每个人都有信心使用groovy。

不管是使用动态类型还是静态类型,都能发现groovy能用较少的代码做较多的工作,接下来看看操作符重载。