在公司内部分享中准备了Groovy&Grails的一些内容,在这里列出PPT中的核心内容,以便有兴趣的朋友对Groovy和Grails有初步的印象,后面会就这一主题有更深入的分享。
RoR(Ruby on Rails)的革命与Web开发的新时代
开发效率是J2EE的5倍以上。
Java的困惑:繁琐的配置、耗时的环境、可移植性差、资源占用大。
动态语言:动态类型、动态结构(元编程)。
RoR的设计思想是简化开发过程,各层的设计只有一个目标,就是简单。
与PHP比,它的组织结构更加清晰。
约定优于配置。
*动态类型:运行时确定变量的类型信息。
*动态结构:利用“元编程”技术,在程序运行时对类的属性和方法进动态增减。
*元编程:编写或者操纵其他程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作。
RoR并不完美
Ruby语言方面的不足:执行性能差、GC缺陷;与java区别大。
对历史遗留项目的支持较为困难。
Groovy | Java |
println “Hello Groovy!” | System.out.println(“Hello Groovy!”); |
9.times{print 8} | for(int i=0;i<9;i++){ System.out.print(8); } |
9.downto(5){print 8} | for(int i=9;i>4;i--){ System.out.print(8); } |
def list=[100,888,783] for(i in list){print i} |
List list = new ArrayList(); list.add(100);….. for(…){…} |
[“Sunday”,”Saturday”,”Wednesaday”].each{day-> println “Today is ${day}” } |
... |
在Groovy可以用def定义无类型的变量(定义变量方面def与JavaScript中的var相似),和返回值为无类型的方法,而在Java中没有def
Groovy:
class Man {
def name = "张三“
def introduce() {
return "I'm $name" // return可以省略
}
}
Groovy中switch语句与Java中相同,不过支持更多类型了,比如String map在Groovy中 def m = [a: 5,b: 2] Groovy不仅有? :三元操作符,还有?:两元操作符,但Java只有? :三元操作符 def result = a ?: "default result“ 多重赋值 [a, b] = [1, 2] [a, b] = [b, a] // 交换a和b的值
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。