Groovy极简入门
发布日期:2021-10-06 15:05:17
浏览次数:9
分类:技术文章
本文共 1867 字,大约阅读时间需要 6 分钟。
Groovy是运行在JVM中的一门语言,有人说Ta是JVM中的Ruby,也有人说是JVM中的python,总之听上去是一个更加敏捷的Java。
文章目录
基础
安装,除了安装路径之外一路Next即可。注意添加环境变量。
安装完毕之后在命令行中输入groovysh
即可进入Groovy编程环境。也可以在开始菜单打开GroovyConsole,进入控制台。 对于Java程序员来说,几乎可以无痛插入Groovy技术,例如对于Java代码: public class MyFirstCroovy{ public static void main(String []args){ System.out.println("Hello world"); }}
Groovy可以轻松运行,如图所示:
除此之外,Groovy还拥有不必创建class的操作风格,例如在命令行中可以直接输入:C:\Users\Laser>groovysh九月 02, 2019 10:33:39 上午 java.util.prefs.WindowsPreferencesGroovy Shell (2.5.8, JVM: 1.8.0_144)Type ':help' or ':h' for help.----------------------------------------------------------------------------groovy:000> test = "hello world"===> hello worldgroovy:000> println testhello world===> nullgroovy:000>
在groovy中,通过import
导入包,需要注意的是,下面的包已经被导入,无需重新导入:
- java.io.*
- java.lang.*
- java.math.BigDecimal
- java.math.BigInteger
- java.net.*
- java.util.*
- groovy.lang.*
- groovy.util.*
与java的区别
语法差别
- 不需要分号,但写上也不会报错
- 可以不写return,此时默认返回方法最后一行的返回值
- 数组初始化
int[] array = [1,2,3]
,在Java中则为int[] array = {1,2,3}
def
可以定义一切对象- 废除了do-while语句
闭包
Groovy中提供了闭包功能,有的语言中也叫匿名函数。在命令行中输入
groovy:000> def clos = { println "hello world"}{ groovy:001> clos.call()}hello world===> null
我们所定义的clos即一个闭包。我们也可以在脚本中写成java风格:
class closureTest { static void main(String[] args) { def clos = { println "Hello World"}; clos.call(); } }
命令链
所谓命令链,即在调用函数时,可以省略括号,这种写法在python2中似曾相识。在上面的代码中实际上也使用了这种方式,例如println test
这条语句。
groovy> def test(int a){ groovy> return a*2 groovy> } groovy> test 15 Result: 30groovy> def range = 5..10 groovy> println range.get 2 Exception throwngroovy.lang.MissingPropertyException: Exception evaluating property 'get' for groovy.lang.IntRange, Reason: groovy.lang.MissingPropertyException: No such property: get for class: java.lang.Integer at ConsoleScript3.run(ConsoleScript3:2)
而且当传入参数为空时,也不能省略括号。
转载地址:https://blog.csdn.net/m0_37816922/article/details/100192937 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月01日 22时04分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode 53. 最大子序和(动态规划)
2019-04-28
图Graph--拓扑排序(Topological Sorting)
2019-04-28
图Graph--最短路径算法(Shortest Path Algorithm)
2019-04-28
LeetCode 674. 最长连续递增序列
2019-04-28
LeetCode 70. 爬楼梯(动态规划)
2019-04-28
数据结构--位图 BitMap
2019-04-28
朴素贝叶斯算法--过滤垃圾短信
2019-04-28
向量空间 Vector Space -- 推荐系统
2019-04-28
B+树 -- MySQL数据库索引
2019-04-28
A*搜索算法--游戏寻路
2019-04-28
我把公众号所有的精华文章都整理出来了
2019-04-28
ROS中的坐标系规定及数据单位
2019-04-28
MATLAB - 三维图绘制
2019-04-28
C++语法例程速查笔记(个人笔记)
2019-04-28
ROS学习过程中的错误记录5 - sw2urdf导出功能包的编译错误
2019-04-28
关于机械臂仿真的几款软件简介
2019-04-28
MATLAB - 符号运算(持续更新)
2019-04-28
机器人动力学 - 机器人学中的惯性矩阵坐标转换及在SolidWorks中的测量
2019-04-28
SolidWorks转Simscape Multibody(两种方案)
2019-04-28
Simscape Multibody —— Revolute Joint的使用
2019-04-28