前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )

【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )

作者头像
韩曙亮
发布2023-03-30 10:21:15
9.1K0
发布2023-03-30 10:21:15
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、Groovy 构造函数中为成员赋值


Groovy 类没有定义构造函数 , 但是可以使用如下形式的构造函数 , 为 Groovy 类设置初始值 ;

代码语言:javascript
复制
new 类名(成员名1: 成员值1, 成员名2: 成员值2)

顺序随意 : 成员的顺序随意 , 没有强制要求 , 只需要 成员名 与 成员值对应即可 ;

个数随意 : 成员个数随意 , 可以为所有的属性赋值 , 也可以只为其中的部分属性赋值 ;

如下代码 :

代码语言:javascript
复制
class Student {
    def name
    def age
}

// 实例化 Student 类
// 正常赋值
def student = new Student(name: "Tom", age: 18)
// 颠倒顺序赋值
def student2 = new Student(age: 16, name: "Jerry")
// 只为 name 属性赋值
def student3 = new Student(name: "Jim")

// 打印两个对象的值
println "student : ${student.name} , ${student.age}"
println "student2 : ${student2.name} , ${student2.age}"
println "student3 : ${student3.name} , ${student3.age}"

执行结果为 :

代码语言:javascript
复制
student : Tom , 18
student2 : Jerry , 16
student3 : Jim , null

二、Groovy 函数的参数传递与键值对参数


在 Groovy 的构造函数中 , 可以使用

代码语言:javascript
复制
成员名1: 成员值1, 成员名2: 成员值2

类型的参数 , 这是键值对 map 类型的集合 ;

但是对于普通的函数 , 不能使用上述格式 , 如果出现

代码语言:javascript
复制
变量名1: 变量值1, 变量名2: 变量值2

样式的代码 , 会将上述参数识别为一个 map 集合 ;

定义了一个 Groovy 类 , 其中定义的方法接收

2

个参数 ;

代码语言:javascript
复制
class Student {
    def name
    def age

    def printValue(a, b) {
        println "${a}, ${b}"
    }
}

如果使用 student.printValue(a: “Tom”, b: 18) , 就会报错 , 提示只传入了一个 map 集合作为参数 ;

必须使用如下形式 , 才能正确执行 printValue 函数 ;

代码语言:javascript
复制
// 传入的 a: "Tom", b: 18 是第一个参数 , 这是一个 map 集合
// 第二个参数是 "Jerry" 字符串
student.printValue(a: "Tom", b: 18, "Jerry")

三、完整代码示例


完整代码示例 :

代码语言:javascript
复制
class Student {
    def name
    def age

    def printValue(a, b) {
        println "${a}, ${b}"
    }
}

// 实例化 Student 类
def student = new Student(name: "Tom", age: 18)
def student2 = new Student(age: 16, name: "Jerry")
def student3 = new Student(name: "Jim")

// 打印两个对象的值
println "student : ${student.name} , ${student.age}"
println "student2 : ${student2.name} , ${student2.age}"
println "student3 : ${student3.name} , ${student3.age}"


// 下面是错误用法
// a: "Tom", b: 18 参数代表了一个键值对集合 , 执行会报错
// student.printValue(a: "Tom", b: 18)


// 传入的 a: "Tom", b: 18 是第一个参数 , 这是一个 map 集合
// 第二个参数是 "Jerry" 字符串
student.printValue(a: "Tom", b: 18, "Jerry")

执行结果 :

代码语言:javascript
复制
student : Tom , 18
student2 : Jerry , 16
student3 : Jim , null
[a:Tom, b:18], Jerry
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Groovy 构造函数中为成员赋值
  • 二、Groovy 函数的参数传递与键值对参数
  • 三、完整代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档