function - Groovy 中的“def”代表什么
问题描述
我们使用 def 来声明变量和定义函数
def myVariable
def getMyVar = {}
def getMyVariable () {}
这些def定义是什么?以及它如何识别函数/闭包或方法?
解决方案
在 Groovy 中使用def
关键字时,实际的类型持有者是 Object,因此您可以将任何对象分配给使用 def 定义的变量,如果方法声明返回 def,则返回任何类型的对象。def
关键字用于类型在运行时动态定义的无类型变量。
这里有 3 个使用def
Object 作为类型的定义。第一个定义了一个无类型变量,第二个定义了一个分配有空闭包的变量。第三个定义方法的返回类型。
def myVariable // Object myVariable
def getMyVar = {} // Object getMyVar = {}
def getMyVariable() {} // Object getMyVariable() {}
请注意,如果将原始数值(例如 int、float 等)分配给def
变量,它将自动将原始类型转换为 Integer、Float 等类的对象实例。
Groovy 样式指南(#3和#21)给出了一些关于何时使用可选类型def
以及何时使用显式强类型的指南。
推荐阅读
- python-3.x - 我可以从该函数中为 AWS lambda 函数创建/删除 cloudwatch 事件规则吗?
- c# - 如何将数据类型作为参数发送
- google-apps-script - 结合 COUNTA 和 COUNTIF 公式?
- jquery - 将 javascript 中的值注入 PageLink
- regex - Flutter 中正则表达式验证中的十进制或有符号数值
- java - Spring Boot多模块项目和bean创建顺序
- python-3.x - 从 s3 存储桶元文件中提取值
- python - 快速排序 Python 程序返回 RecursionError:比较中超出了最大递归深度
- c - 如何更改节点在函数内指向的位置
- go - 从 Golang 驱动程序调用 apoc 过程