使用'def'声明变量并使用已知类型声明变量之间有什么区别吗?

时间:2011-12-29 18:20:20

标签: variables groovy function

假设我有一个已定义的类

class MyClass {
}

在执行def c = new MyClass()而不是MyClass c = new MyClass()时,运行时的性能是否受到影响?还是完全一样?

1 个答案:

答案 0 :(得分:3)

def是类型名称的替代品。在变量定义中,它用于表示您不关心类型。

如果你没有声明变量的类型,那么封底下的Groovy将被声明为类型Object。您可以将def视为Object的别名。

在你的例子中:

def c = new MyClass()
// transform to:
java.lang.Object c = new MyClass()

MyClass c = new MyClass()
// transform to:
MyClass c = new MyClass()