emu in blogjava

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  171 随笔 :: 103 文章 :: 1052 评论 :: 2 Trackbacks

网上看到很多评论说groovy 是个很好用的脚本语言,周末去下了一个回来看看。语法好像和java有些接近,不过松散了一些,有好也有坏吧。遗憾的是没有IDE,只好在editplus上面配了个groovy工具组,添了运行、编译和控制台三个命令进去,然后开始照着手册敲代码。

 

读书的时候就换过好几次开发语言,LOGO, BASIC (APPLE II 上面的那种呵呵), TRUE BASIC, QUICK BASIC, TURBO PASCAL, TURBO C, TPW, BC++, DELPHI每次换一种语言总是这样几个step

1 hello world(看看开发环境) 2 99乘法表(看看循环、格式化输出)3 做个比较复杂点的程序,看看过程调用、循环、判断这些基本的语言特征。

 

好些年没有学新语言了,还是先试试这三板过时的(面向对象、数据库、网络服务都没有涉及到)斧头还能不能砍得了东西吧。

1 hello world

脚本语言就是方便,一点上下文都没有,一个println就搞定了

 

2 99乘法表

 1def i=0 
 2def j
 3while(i<9){
 4    i++
 5    j=1
 6    while(j<=i){
 7        print(j+"*"+i+"="+(i*j)+"\t")
 8        j++
 9    }

10    println()
11}

脚本语言就是松散,分号加不加都可以。语法和数据类型好像都跟java差不多。

 

3 写个复杂一点的例子。前两天看《程序员法则》刚好看到提起了著名的八皇后问题,就写个八皇后吧:

 1int q=8
 2int[] i=new int[q]
 3int count=0
 4long t = System.currentTimeMillis();
 5scan(0)
 6println("totle results:"+count)
 7println("totle time:"+(System.currentTimeMillis()-t));
 8def scan(n){
 9    if (n==q){
10        println(i.toList())
11        count++
12        return
13    }

14    i[n]=0
15    while(i[n]<q){
16        i[n] = i[n]+1
17        if (check(n))
18            scan(n+1)
19    }

20}

21def check(n){
22    if (n>0)
23        for (j in 0..<n) 
24            if (i[j]==i[n] || i[j]-i[n]==j-|| i[j]-i[n]==n-j )
25                return false
26    return true
27}



呵呵,典型的面向过程,全局变量都弄出来了。运行一下还满快的。

 

在blogjava贴程序的时候groovy的一个语言符号“...”(23行)被替换成图片了,不过本来这个符号也已经开始被淘汰了,用“..<”

posted on 2005-05-18 17:50 emu 阅读(3423) 评论(2)  编辑  收藏 所属分类: Groovy 学习笔记

评论

# re: groovy学习笔记1 -从HelloWorld到八皇后 2006-03-15 09:26 碧海蓝天
IntelliJ IDEA 支持阿 你不知道吗  回复  更多评论
  

# re: groovy学习笔记1 -从HelloWorld到八皇后 2006-03-15 10:15 emu
知道的。我在 http://www.blogjava.net/emu/archive/2005/05/18/4781.html 有提起过。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: