基本语法说明
1、Groovy是基于Java语言的,所以完全兼容Java语法,可作为面向对象编程语言[定义类],也可作为脚本型语言[文件定义中不出现类]
2、在一个Groovy文件中,可以混合类的定义和脚本定义,此时不要再定义与文件名相同的类
3、Groovy中建议使用def定义变量、方法返回值,不建议使用具体的数据类型
4、Groovy中的注释,单行注释//,多行注释/**/
5、Groovy中语句末尾的分号可以省略,用换行来代替
6、默认类、方法、字段都是用public修饰的
7、对象的属性操作
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a7e08c902b627d2bad2f441cc7c09b1c.png)
8、方法
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d301586b1f01f8c62e95a32d2b478104.png)
9、支持顺序结构、分支结构、循环结构的语句
10、支持各种运算符:算术、关系、位、赋值、范围
11、基本类型也是对象,可以执行对象的方法,Groovy中的字符串有单引号、双引号、三引号
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a7454f4975cccd983ffd889f313002f2.png)
12、数据类型:变量、属性、方法、闭包的参数以及方法的返回值的类型都是可有可无的,都是在变量赋值的时候才决定他的类型
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a0a313b6d72f339a87e40c12b2d8f6a8.png)
13、Groovy常见注意点
package com.gykalc.demo
class Demo01BasicNotice {
def bookName = "斗破苍穹"
def price = 19.9
def sale(bookName, price) {
println("The book is 《${bookName}》,price is $price")
}
def sum(price1, price2) {
println("""
price1 = $price1
price2 = $price2
sum(price1, price2) = ${price1 + price2}""")
}
}
package com.gykalc.demo
def demo01BasicNotice = new Demo01BasicNotice()
demo01BasicNotice.sale(demo01BasicNotice["bookName"], demo01BasicNotice.price)
demo01BasicNotice.sum(demo01BasicNotice["price"], 39.9)
14、Groovy中四种引号生成的字符串
package com.gykalc.demo
def desc = '测试'
def str1 = '单引号,不支持变量引用,不支持换行操作${desc}'
def str2 = "双引号,支持变量引用,不支持换行操作${desc}"
def str3 = '''三引号,不支持变量引用,支持换
行操作${desc}
'''
def str4 = """双三引号,支持变量引用,支持换行
${desc}"""
println(str1)
println(str2)
println(str3)
println(str4)
println(str1.getClass().getName())
println(str2.getClass().getName())
println(str3.getClass().getName())
println(str4.getClass().getName())
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d8f5e4fda689c68dfc25409273be973d.png)
15、Groovy中对集合的操作
package com.gykalc.demo
def list = [1, 3, 5, 7]
assert list instanceof List
list.add(9)
println(list)
def list2 = [2, 4, 6, 8]
def listPlus = list + list2
println(list)
println(list2)
println(listPlus)
listPlus.remove(2)
println(listPlus)
listPlus.removeElement(3)
println(listPlus)
listPlus = listPlus - 1
println(listPlus)
listPlus = listPlus - 2
println(listPlus)
listPlus = listPlus - list
println(listPlus)
listPlus.each {
def item ->
{
println("遍历的数据为:${item}")
}
}
def map = [J: "Java", "K": "Kotlin", 'G': "Groovy"]
map.put("P", "Python")
println(map)
map.remove("P")
map.remove("J", "Java")
println(map)
map -= [K: "Kotlin"]
println(map)
map += [G: "Gradle"]
println(map)
map.each { println("遍历的map的value=$it.value") }
16、类导入与异常处理
package com.gykalc.demo
import java.text.SimpleDateFormat
def sdf = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm")
def dateFormat = sdf.format(new Date())
println(dateFormat)