zoukankan      html  css  js  c++  java
  • Grails笔记四:Groovy特性小结

    在学习Grails的时候与Groovy打交道不可避免,虽然不必太深刻,但多知道一些特性也是很有帮助的~


    1.相除后获取整数

    使用intdiv()方法可以获得整数,注意点是这个方法只适用两个整数相除,浮点数不行

    2.Groovy的if,while可接受的类型

    • boolean
    • 数字  0为假,其它为真
    • 字符串 空字符""为假,其它为真
    • 对象  为null时假,其它为真
    • 集合  集合属性length=0为假,其它为真

    3.闭包的访问方式

    Groovy中的闭包和方法很类似,其直接调用方式有两种:

    //定义一个闭包
    def clos={println it}
    //第一种闭包调用
    clos.call('奥巴马')
    //第二种闭包调用
    clos('笨拉灯')
    

     4.Groovy中Map的key值如何是一个变量

    在Groovy中,Map的key值默认是字符串,如果希望key值是变量的话,需要用()将变量括起来:

    def x='123'
    def map=[(x):45]
    println map.toString()
    

     5.Groovy类与java类的两个不同点

      1.Groovy类存在基于Map初始化的默认构造函数

    //构造一个Groovy类
    class cs{
        String name
    }
    //实例化
    def c=new cs(name:'tita')
    //或者
    def cc=new cs([name:'tt'])
    

       2.Groovy类的属性字段没有定义访问限定符,默认为private

    class A{String name}
    //等价
    class A1{
        private String name
        public String getName(){
            name
        }
        public void setName(String name){
            this.name=name
        }
    }
    def a=new A(name:'tt')
    //也就是说以下等价
    println a.name
    println a.getName()
    

    6.List的*号运算符用法

    List有一个非常有用的运算符——*,在两种情况下很有用:

      1.将*号放在一个List对象的后面,如

    def list=[1,2,3]
    def temp=list*.intdiv(2)
    println temp
    

       这时,List对象中的每个元素都会调用*后面的方法,返回的依旧是个List对象

      2.放在范围的前面,如:

     

    def range=0..9
    def temp=[*range]
    println temp
    

       注意[]必不可少,因为这种方式就是为了展开范围生成List对象

  • 相关阅读:
    联合金投P9办公自动化解决方案[1]
    协同软件不是万能钥匙:看清协同软件的边界
    天剑OA系统解决方案[1]
    怡康OA办公自动化解决方案
    联合金投P9办公自动化解决方案[1]
    天路协同办公管理系统解决方案[1]
    泛微协同商务系统办公自动化解决方案
    DCI.Indi.Office4.0 OA解决方案(集团企业版)
    新思创OA办公自动化解决方案
    福州世纪通OA办公自动化系统方案[1]
  • 原文地址:https://www.cnblogs.com/liaochong/p/groovyList.html
Copyright © 2011-2022 走看看