Groovy基础语法
Groovy 基础语法
变量定义
1、支持动态类型,使用def关键字定义变量
// Java中定义变量的方式
int age = 18;
String name = "张三";
// Groovy中使用def关键字定义变量,编译器自动推断出变量的实际类型
def age = 22
def name = "James"
2、语句结尾不用写 ; 号
def age = 22
def name = "James"
3、使用基本类型定义的变量,全部装箱为对应的包装类
Groovy中定义变量使用 def
关键字,但是Groovy是基于Java扩展的,因此也可以使用Java里面的类型,如Java中8大基本数据类型:byte、short、int、long、float、double、char、boolean
// 定义8大基本数据类型
byte mByte = 1
short mShort = 2
int mInt = 3
long mLong = 4
float mFloat = 5
double mDouble = 6
boolean mBoolean = true
char mChar = '男'
// 对类型进行打印
println mByte.class
println mShort.class
println mInt.class
println mLong.class
println mFloat.class
println mDouble.class
println mBoolean.class
println mChar.class
// 打印结果如下
class java.lang.Byte
class java.lang.Short
class java.lang.Integer
class java.lang.Long
class java.lang.Float
class java.lang.Double
class java.lang.Boolean
class java.lang.Character
字符串
Groovy中有三种常用的字符串定义方式,如下所示:
可扩展字符串的含义就是在字符串里面可以引用变量或表达式
1、单引号 ''
定义的字符串为不可扩展字符串
2、双引号 ""
定义的字符串为可扩展字符串,可扩展字符串中可以使用\({}引用变量值或表达式
3、三引号 `"""` 定义的字符串为输出带格式的字符串,也可使用\){}引用变量
def age = 18
def name = 'James'
// 定义一个不可扩展字符串,跟Java类似
def str1 = 'hello ' + name
// 定义一个可扩展字符串
def str2 = "Hello ${name} ${name + age}"
// 定义一个输出带格式的可扩展字符串,使用 \ 来分行
def str3 = """
\
${str2}
Hello
name
"""
// 打印类型和值
println 'str1类型:' + str1.class
println 'str1输出值:' + str1
println 'str2类型:' + str2.class
println 'str2输出值:' + str2
println 'str3类型:' + str3.class
println 'str3输出值:' + str3
// 打印结果
str1类型:class java.lang.String
str1输出值:hello James
str2类型:class org.codehaus.groovy.runtime.GStringImpl
str2输出值:Hello James James18
str3类型:class org.codehaus.groovy.runtime.GStringImpl
str3输出值:
Hello James James18
Hello
name
可以看到str2和Str3的类型为GStringImpl,这两种类型在开发过程中需要强制转换吗?
// 定义一个String类型变量接收GStringImpl类型的变量,没有强转
String str4 = str2
// 打印类型和值
println 'str4类型:' + str4.class
println 'str4输出值:' + str4
// 输出结果
str4类型:class java.lang.String
str4输出值:Hello James James18
结论:在编码过程中,不需要特别关注String和GSting的区别,编译器会帮助我们自动转换类型。
方法
get和set方法
Class是一等公民
==和equals
Groovy基础语法的更多相关文章
- Gradle Groovy 基础语法 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Groovy系列(3)- Groovy基础语法
Groovy基础语法 动态类型 Groovy定义变量时:可以用Groovy风格的def声明,不指定类型:也可以兼容Java风格,指定变量类型:甚至还可以省略def或类型 def t1 = 't1' S ...
- groovy常用语法及实战
groovy语言简介 一种基于JVM的敏捷开发语言,作为编程语言可编译成java字节码,也可以作为脚本语言解释执行. 结合了Python.Ruby和Smalltalk的许多强大的特性 支持面向对象编程 ...
- Python学习的个人笔记(基础语法)
Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...
- python基础语法及知识点总结
本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...
- 【Scala学习之一】 Scala基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- devops-jenkins-Pipeline基础语法
1. jenkins-Pipeline基础语法 1) jenkins-Pipeline总体介绍 • Pipeline,简而言之,就是一套运行与jenkins上的工作流框架,将原本独立运行于单个或多个 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- iOS-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
随机推荐
- idea启动tomcat后控制台日志显示中文乱码问题
想必有些人 会遇到 控制台中文乱码: 可以通过以下方法解决该中文乱码问题: 1. 点击Help => Edit custom VM Options,在最后面添加 "-Dfile.en ...
- 利用css3渐变效果实现圆环旋转效果
* { margin: 0; padding: 0; } .stage { width: 200px; height: 130px; margin: 100px auto; position: rel ...
- 在uniapp的节流函数
为了解决同一个人连续多次的点击同一个事件会造成的问题,js解决的方法有防抖和节流,防抖和节流都是在一定的时间上控制次数 节流是在定义的时间内连续点击多次事件,只会执行一次 在uniapp的工具文件夹u ...
- SpringBoot其他框架-JPA-Hibernate-Swagger
SpringBoot其他框架 通过了解其他的SpringBoot框架,我们就可以在我们自己的Web服务器上实现更多更高级的功能. 邮件发送:Mail 我们在注册很多的网站时,都会遇到邮件或是手机号验证 ...
- mycat实现主从读取中的问题
schema.xml 中的配置如下:..... <dataHost name="aaa" maxCon="2000" minCon="100&q ...
- drf视图类总结

- 用于激光雷达的 APD,SPAD 和 SiPM 分析
1. 术语及定义 1.1 激光雷达,Light Detection And Range, LiDAR 发射激光光束,并接收回波以获取目标三维和/或速度信息的系统: 1.2 机械旋转激光雷达,Mech ...
- 2021.12.10 P5041 [HAOI2009]求回文串(树状数组求逆序对)
2021.12.10 P5041 [HAOI2009]求回文串(树状数组求逆序对) https://www.luogu.com.cn/problem/P5041 题意: 给一个字符串 \(S\) ,每 ...
- Photoshop图片处理在线网页使用无需下载绿色
今天给大家推荐一个ps在线版网页 实测使用效果不错,绿色简介,无需下载,不卡顿一般的电脑配置都可以带起来 因为是在线的所以是精简版的,但是一般ps软件有的工具,功能他都有,比较适合及时性使用 废话不多 ...
- GeoServer style中文乱码解决方法
在说明这个问题之前,有三点需要明确: 一是创建New style时,网页中文本框内的内容才是最终会应用到GeoServer的sld内容,这与本地sld文件没有关系. 二是xml的encoding定义的 ...