Groovy中的'def'代表什么
What is 'def' in Groovy stands for
我们使用 def 来声明变量和定义函数
def myVariable
def getMyVar = {}
def getMyVariable () {}
这些定义是什么?以及它如何识别函数/闭包或方法?
当在 Groovy 中使用 def
关键字时,实际类型持有者是 Object,因此您可以将任何对象分配给使用 def 定义的变量,并且 return 任何类型的对象,如果方法声明为 returning def。 def
关键字用于类型在运行时动态定义的无类型变量。
这里有 3 个使用 def
的定义和以 Object 作为类型的等价物。第一个定义了一个无类型变量,第二个定义了一个分配有空闭包的变量。第三个定义了方法的 return 类型。
def myVariable // Object myVariable
def getMyVar = {} // Object getMyVar = {}
def getMyVariable() {} // Object getMyVariable() {}
请注意,如果将原始数值(例如 int、float 等)分配给 def
变量,它会自动将原始类型转换为 class Integer、Float、等等
Groovy Style Guide (#3 and #21) 给出了一些关于何时使用可选类型 def
以及何时使用显式强类型的指南。
我们使用 def 来声明变量和定义函数
def myVariable
def getMyVar = {}
def getMyVariable () {}
这些定义是什么?以及它如何识别函数/闭包或方法?
当在 Groovy 中使用 def
关键字时,实际类型持有者是 Object,因此您可以将任何对象分配给使用 def 定义的变量,并且 return 任何类型的对象,如果方法声明为 returning def。 def
关键字用于类型在运行时动态定义的无类型变量。
这里有 3 个使用 def
的定义和以 Object 作为类型的等价物。第一个定义了一个无类型变量,第二个定义了一个分配有空闭包的变量。第三个定义了方法的 return 类型。
def myVariable // Object myVariable
def getMyVar = {} // Object getMyVar = {}
def getMyVariable() {} // Object getMyVariable() {}
请注意,如果将原始数值(例如 int、float 等)分配给 def
变量,它会自动将原始类型转换为 class Integer、Float、等等
Groovy Style Guide (#3 and #21) 给出了一些关于何时使用可选类型 def
以及何时使用显式强类型的指南。