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-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
随机推荐
- maven项目中各文件都没有报错,但是项目名称有红叉
项目报错可以看到Problems(可以在Window--Show View--other--输入Problems找到) 一.可能原因 1.项目中各文件没有报错,但是项目名称中 ...
- JavaEE期末复习知识点总结
JavaEE期末复习知识点总结 Java企业应用开发环境 Maven的基础概念 Maven是一个项目管理工具,可以对 Java 项目进行构建.依赖管理 Maven仓库 Maven 仓库是项目中依赖的第 ...
- SpringCloud Alibaba入门之Nacos(SCA)
SpringCloud Alibaba Spring Cloud Alibaba 致力于提供微服务开发 的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Clo ...
- 学习打卡——CentOS 7安装
本来今天是要学习redis的,但是redis官方又不支持在win下运行,windows版本目前都是微软官方在维护.redis最新版都已经更新到7.0了,windows却还是只有3.x版本.所以随性就去 ...
- 【直播回顾】OpenHarmony知识赋能第四期直播——标准系统HDF开发
3月10日晚上19点,OpenHarmony开发者成长计划社群内,我们举办了知识赋能第四期直播课<OpenHarmony标准系统HDF框架介绍>,吸引了数千名开发者线上观看学习,并 ...
- VMWARE vcenter重置root密码
1\重启VCSA 2\在GNU GRUBc的时候,按住e键,在后面加上一句命令 3.rw init=/bin/bash 4. 按CTRL-X或者按住F10,启动系统 5. 使用passwd命令修改ro ...
- python学习-Day36
目录 进程 进程间通信 队列(multiprocess.Queue) 概念 Queue的实例q具有以下方法: 消息队列 生产者消费者模型 实现生产者消费者模型三要素: 线程理论 线程概念 线程存在的意 ...
- Mybatis执行多条SQL
1:在数据库连接配置文件处,增加如下参数即可:allowMultiQueries=true spring: datasource: url: jdbc:mysql://IP:PORT/数据库名?其他参 ...
- Windows下查找各类游戏存档路径
我算是个比较爱打单机游戏的人,同时也是个半吊子的编程爱好者,有的时候会去干一些修改存档的事儿.不过这篇博文不讲存档修改技术,只讲第一步:去哪找存档? 目标:在windows10系统下搜索到游戏的存档路 ...
- 一文看懂二层接口、三层接口、PVID及VLANIF
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 文章来源:朱仕耿个人博客 一位同事问了个关于二层和三层端口的概念及区分,以及关于VLANIF. ...