groovy安装及一些特性思考
2012-05-18 14:31
375 查看
安装:
http://groovy.codehaus.org/Download 下载binary版本
解压后设置GROOVY_HOME为你解压的地址,PATH为GROOVY_HOME/bin
执行groovysh看能否进行groovy命令行模式,或者groovyConsole进行交互模式
eclipse插件安装:
http://groovy.codehaus.org/Eclipse+Plugin
groovy与java比较的特性
动态编译groovy如同其他脚本语言一样,是不是需要进行事先编译才能运行的,而是直接可以运行,在运行时进行编译,因此在性能上会差于java。
动态类型与java不同,groovy声明变量时不用指定变量类型,变量的类型在最终使用时动态指定,如:
闭包groovy中与java另一个不同是groovy能像javascript一样将函数作为变量进行传递,从而能够实现闭包以及callback方式的调用,如:
其他各种对collection、IO等的调用简便化处理
http://groovy.codehaus.org/Download 下载binary版本
解压后设置GROOVY_HOME为你解压的地址,PATH为GROOVY_HOME/bin
执行groovysh看能否进行groovy命令行模式,或者groovyConsole进行交互模式
eclipse插件安装:
http://groovy.codehaus.org/Eclipse+Plugin
groovy与java比较的特性
动态编译groovy如同其他脚本语言一样,是不是需要进行事先编译才能运行的,而是直接可以运行,在运行时进行编译,因此在性能上会差于java。
动态类型与java不同,groovy声明变量时不用指定变量类型,变量的类型在最终使用时动态指定,如:
str="this is a string"而且在调用某个对象的方法,能否调用完全取决于该类有没有此方法,如果有此方法便可调用 ,这就天然的支持多态,甚至比java的多态更加得自由,如:
class ThisClass{ def name def phone } class OtherClass{ def sex def name } def showname(people){ println "people name is:"+people.name } ThisClass tc = new ThisClass(name:"this",phone:"123") OtherClass oc = new OtherClass(sex:"man",name:"other") showname(tc) showname(oc)
闭包groovy中与java另一个不同是groovy能像javascript一样将函数作为变量进行传递,从而能够实现闭包以及callback方式的调用,如:
class User{ def name def phone } phonesome = {user -> println "dial $user.phone !" println "connected!!!" println "hello $user.name" } class Me{ def friend def dosomething(something){ something.call(friend) } } me = new Me(friend: new User(name:"haidong",phone:"12345")) me.dosomething(phonesome)
其他各种对collection、IO等的调用简便化处理
相关文章推荐
- 非ROOT实现静默安装的一些思考与体会,AIDL获取IPackageManager,反射ServiceManager,系统签名
- 用Groovy思考 第五章 Groovy特性深入(2)
- 关于电脑安装双系统的一些问题的思考和解决
- 非ROOT实现静默安装的一些思考与体会,AIDL获取IPackageManager,反射ServiceManager,系统签名
- 用Groovy思考 第四章 Groovy特性深入
- Groovy 在Java 8下的一些兼容性特性
- 用Groovy思考 第五章 Groovy特性深入(2)
- 用Groovy思考 第四章 Groovy特性深入
- Sqlserver 2000 数据库安装的一些问题的思考
- 非ROOT实现静默安装的一些思考与体会,AIDL获取IPackageManager,反射ServiceManager,系统签名
- 记录一些思考
- 对Spring运用的一些思考
- Fedora 16 安装后的一些事
- 关于javascript的undefined和null的一些思考
- 组策略中一些与用户登录和设备安装相关的设置
- 黑马程序员-1-java5的一些简单新特性
- 关于Blog现象的一些思考。
- 安装Mysql的一些问题,比如Net Connect 卸载不掉
- 在Eclipse中在线安装插件SVN和Android studio中配置SVN的一些坑
- 测试环境中安装sharepoint server 2010过程中出现的一些问题及解决过程