1、写作背景
目前在进行开源项目学习中,有一些项目时用gradle进行版本控制的,所以在此记录
2、参考网址
基础语法参考网址:https://www.jianshu.com/p/e8dec95c4326 逻辑判断参考网址:https://www.jianshu.com/p/8127742e0569
3、学习目的
学习简单的语法使用,不要搞一些花哨无用的东西(炫技可耻)字符String的常用操作数组Array的常用操作列表List的常用操作字典Map的常用操作范围Range的常用操作
4、语法学习
4.1)String创建
普通字符串使用单引号
// 1、单引号:普通字符串
def name = '张三'
println name
// 2、双引号:普通字符串
def doubleName = "hello $name"
println doubleName
// 3、三引号:格式字符串
def tripleName = '''
line one
line two
line three
'''
println tripleName
4.2)对象创建
Groovy 默认会隐式的创建getter、setter方法,并且会提供带参的构造器
// In Groovy(Groovy 默认会隐式的创建getter、setter方法,并且会提供带参的构造器)
class Person {
String name
}
// 1、构造器赋值
def person = new Person(name: '张三')
println(person.name)
// 2、直接赋值
person.name = '李四'
println(person.name)
// 3、set方法赋值
person.setName('王五')
println(person.name)
4.3)Array数组创建
// 数组创建(String[]/int[])
// 1、直接声明类型为数组类型 String[]
String[] arrStr = ['Ananas', 'Banana', 'Kiwi']
println(arrStr)
println(arrStr instanceof String[])
// 2、通过as关键字指定类型为数组类型 int[]
def numArr = [1, 2, 3] as int[]
println(numArr)
println(numArr instanceof int[])
4.4)Lists列表创建
在 Groovy 中,{...} 语句块是留给闭包(Closure)使用的,所以不能像 Java 中一样使用下面这种方式初始化数组
// groovy 中,{...} 语句块是留给闭包(Closure)使用的,数组使用[]进行包装
// 列表创建(java.util.ArrayList)
def numbers = [1, 2, 3]
def arrays = [1, "a", true]
println(numbers)
println(numbers.class)
println(arrays)
println(arrays.class)
4.5)Map创建
// map创建(默认使用LinkedHashMap)
// 1、key虽然没有加引号,不过Groovy会默认将其转换为字符串
def colors = [red: '红色', green: '绿色', blue: '蓝色']
println colors
println colors instanceof java.util.LinkedHashMap
println colors.red
println colors.pink
colors.pink = "粉色"
println colors.pink
--
4.6)Range创建
// range创建
def range = 0..5
println range
println range.size()
println range instanceof List
println (0..5).collect() // 相当于闭区间
println (0..<5).collect() // 相当于左闭右开区间
println ('a'..'d').collect() //也可以是字符类型
//常见使用场景
for (x in 1..10) {
println x
}
('a'..'d').each {
println it
}
def age = 25
switch (age) {
case 0..17:
println '未成年'
break
case 18..30:
println '青年'
break
case 31..50:
println '中年'
break
default:
println '老年'
}