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-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
随机推荐
- Git本地上传口令
$ cd /d/GitProject (进入要上传的文件的文件夹) $ git pull (更新本地库) $ git add . (添加 ...
- 微信小程序animation动画2种方法
这里介绍 2 种方法一种是常规的小程序方法操作,另一种是引入动画库 1. 常规动画操作设置 wxml: <view> <view bindtap="clickMe" ...
- 微信小程序加密解密参数
加密:encodeURIComponent(参数) 解密:decodeURIComponent(参数)
- vue中执行npm run build报错解决方法?
遇到了执行npm run build 后报错: [build:js ] Module not found: Error: Can't resolve 'scss-loader' in 'D:\work ...
- formdata收集数据
通常在收集表单的时候我们都要涉及到绑定上传附件,这时候就可以用formdata的形式携带文件流上传给服务器. formData是ajax2.0(XMLHttpRequest Level2)新提出的接口 ...
- Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02
代码延续地址:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01 1.创建t_role角色表(比如管理员admin,普通用户user等),创建t_pers权限表 ...
- 最强Postman替代品,国产软件Apifox到底有对牛?
作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的非常出色.但是在整个软件开发过程中,API 调试只是其中的一部分,还有很多事情 Postman 无法完成,或者无法高 ...
- vwware workstation虚机网络配置NAT
1.在编辑中选择虚拟网络编辑器,新增NAT模式网络适配器,如下图: 2.在虚拟机中选择设置,在网络适配器中自定义为上一步配置的网络适配器,如下图: 3.进入虚拟机后,编辑/etc/sysconfig/ ...
- 【LeetCode】49. 字母异位词分组
49. 字母异位词分组 知识点:字符串:哈希表 题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源 ...
- Python 一网打尽<排序算法>之从希尔排序算法的分治哲学开始
1. 前言 本文将介绍希尔排序.归并排序.基数排序(桶排序).堆排序. 在所有的排序算法中,冒泡.插入.选择属于相类似的排序算法,这类算法的共同点:通过不停地比较,再使用交换逻辑重新确定数据的位置. ...