与java比较
- Groovy完全兼容java的语法
- 分号是可选的
- 类、方法默认是public的
- 编译器给属性自动添加getter/setter方法
- 属性可以直接用点号获取
- 最后一个表达式的值会被作为返回值
- ==等同于equals(),不会有NullPointerExceptions
public class Person{//类、方法默认是public的 private String name; private int age; Person(String name,int age) { this.name = name; this.age = age //分号是可选的 } String getname() { return name } voID setname(String name) { this.name = name } int getAge() { age //最后一个表达式的值会被作为返回值 }}Person p = new Person('张三',18)p.name = '李四' //属性可以直接用点号获取//println(p.name)println p.name //括号可去掉,中间加空格def version = 1 //可选类型定义,相当于JavaScript中的varassert version == 2 //可直接使用断言
高效的Groovy特性
1. assert语句
2. 可选类型定义(使用def)
3. 可选的括号
4. 字符串
5. 集合API
6. 闭包
def version = 1 //可选类型定义,相当于JavaScript中的varassert version == 1 //可直接使用断言println version //括号是可选的//字符串def s1 = 'imooc' //单引表示就是字符串def s2 = "gradle version is ${version}" //双引可插入变量def s3 = '''myname isimooc'''//三个单引号可以换行println s1println s2println s3//集合Listdef person = ['zhangsan','lisi'] //定义List集合person << 'wangwu' //增加元素assert person.getClass() == ArrayList //通过//集合map,对应的是java.util.linkedHashMapdef house = ['songjiang':'big','lujiazui':'small']house.jiuting = 'normal'println house.jiutingprintln house.getClass()//闭包 在构建脚本中,闭包被当做方法参数来使用def c1 = { v -> println v}def c2 = { println 'hello'}def method1(Closure closure){ closure('param')}def method2(Closure closure){ closure()}method1(c1)method2(c2)
用groovy看一个工程的build.gradle文件
//构建脚本中默认都是有个project实例的,默认的作用域都是project//apply是project的方法apply plugin:'java' //project定义的一个属性version并赋值为0.1version = '0.1'//repositorIEs是project的方法,闭包作为参数repositorIEs { mavenCentral()}dependencIEs { compile 'commons-codec:commons-codec:1.6'}总结
以上是内存溢出为你收集整理的groovy基础全部内容,希望文章能够帮你解决groovy基础所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)