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对象
Grails笔记四:Groovy特性小结的更多相关文章
- 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
		
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...
 - Java加密与解密笔记(四) 高级应用
		
术语列表: CA:证书颁发认证机构(Certificate Authority) PEM:隐私增强邮件(Privacy Enhanced Mail),是OpenSSL使用的一种密钥文件. PKI:公钥 ...
 - ES6学习笔记<四> default、rest、Multi-line Strings
		
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
 - 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
		
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
 - C++笔记(仅C++特性,需C语言基础)
		
C++复习笔记一(类的声明定义应用与构造函数析构函数部分)const在C语言中是"不能被改变值的变量",而在C++种子则是"一种有类型描述的常量",常量必须初始 ...
 - kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
		
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
 - MySql学习笔记四
		
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
 - openresty 学习笔记四:连接mysql和进行相关操作
		
openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...
 - C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
		
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
 
随机推荐
- business meeting
			
Metting are all about discussions . discussion expression 开始会议 Let's get started We need to discuss. ...
 - linux c++如何学习
			
最近有人问我,linux c++工资这么高,怎么学习才能入门,只要有个项目经验能进入一个公司即可. 然后我就说了linux c++开发的整个流程,然后用项目作为目标进行学习,这其实是一种以目的为主导的 ...
 - maven相关的学习资料
			
1, maven的settings配置文件详解: http://blog.csdn.net/jinshuaiwang/article/details/23686099 2,maven原理---翡青的博 ...
 - Python之系统交互(subprocess)
			
本节内容 os与commands模块 subprocess模块 subprocess.Popen类 总结 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell ...
 - ASP.NET Core MVC Tag Helpers 介绍
			
简介 Tag Helpers 提供了在视图中更改和增强现有HTML元素的功能.将它们添加到视图中,会经过Razor模板引擎处理并创建一个HTML,之后再返回给浏览器.有一些Tag Helpers,其实 ...
 - java 远程调用 RPC
			
1. 概念 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用).H ...
 - 截屏工具 HyperSnap
			
听说Tencent开发了1款截屏工具,叫"snip".确实字体效果不错,但是丫只有for mac的,不知道脑子里怎么想的,该不是直接买了第三方的然后冠了个名儿吧. 那么Windows有没有类似的工具呢 ...
 - C# 开机自启动和最小化托盘显示
			
C# 开机自启动和最小化托盘显示 一. C# 开机自启动 C# 开机自启动,这个功能是大多数服务型软件很常用一个功能,但是这个功能确是不 太好做,花了两天想对策.不过最终呢,结果还是很满意的 ...
 - latch相关视图整理
			
latch相关视图整理(原创) V$LATCH V$LATCH视图在选取X$KSLLT记录时,进行了Group By及SUM运算,从而得出了一个汇总信息,保存了自实例启动后各类栓锁的统计信息.常用于当 ...
 - 统计s="hello alex alex hello haiyan cc  haiyan  com"中每个单词的个数
			
这个题可以有好几种解题方法. 一.索引值获取 s="hello alex alex hello haiyan cc haiyan com" l=s.split() dic={} f ...