gradle

极客逐浪客
• 阅读 1443

groovy语法

容器类

  • Map: 其底层对应Java中的LinkedHashMap

变量定义:Map变量由[:]定义,比如

def aMap = ['key1':'value1','key2':true] 。

冒号左边是key,右边是Value。key必须是字符串,value可以是任何对象。另外,key可以用''或""包起来,也可以不用引号包起来。比如

def aNewMap = [key1:"value",key2:true]//其中的key1和key2默认被处理成字符串"key1"和"key2" 
  • List: 其底层对应Java中的List接口,一般用ArrayList作为真正的实现类
    变量定义:List变量由[]定义,比如

def aList = [5,'string',true] //List由[]定义,其元素可以是任何对象
  • Range:List的一种拓展

Range类型的变量 由begin值+两个点+end值表示,下边这个aRange包含1,2,3,4,5这5个值.

 def aRange = 1..5 

如果不想包含最后一个元素,则:

def aRangeWithoutEnd = 1..<5  <==包含1,2,3,4这4个元素 

闭包

闭包,是一种数据类型,它代表了一段可执行的代码。它们不需要名称,可以在定义之后执行。定义格式如下:

def xxx = {paramters -> code}  //或者  
def xxx = {无参数,纯code}  //这种case不需要->符号

调用方法:

闭包对象.call(参数)  //或者更像函数指针调用的方法:
闭包对象(参数) 
def acoll = ["Groovy", "Java", "Ruby"]
         
acoll.each{
 println it
}

闭包中的 it 变量是一个关键字,指向被调用的外部集合的每个值 — 它是默认值,可以用传递给闭包的参数覆盖它。下面的代码执行同样的操作,但使用自己的项变量:

def acoll = ["Groovy", "Java", "Ruby"]
         
acoll.each{ value ->
 println value
}

注意:each函数调用的圆括号不见了!原来,Groovy中,当函数的最后一个参数是闭包的话,可以省略圆括号

闭包能够作为参数进行传递(Groovy 中的函数或方法不能这样做)。闭包在调用的时候才会执行.可以通过两种方法调用闭包:直接调用或者通过 call() 方法调用。

def excite = { word ->
 return "${word}!!"
}
assert "Groovy!!" == excite("Groovy")
assert "Java!!" == excite.call("Java")

groovy类

在 Groovy 中可以像在 Java 代码中一样定义类。惟一的区别是,不需要使用 public 修改符,而且还可以省略方法参数的类型.

Groovy 编译器为用 Groovy 定义的每个类都生成标准的 Java .class

groovy类初始化

Groovy 自动提供一个构造函数,构造函数接受一个名称-值对的映射,这些名称-值对与类的属性相对应。这是 Groovy 的一项开箱即用的功能 — 用于类中定义的任何属性,Groovy 允许将存储了大量值的映射传给构造函数。

点赞
收藏
评论区
推荐文章
九路 九路
4年前
Gradle技术之一 Groovy语法精讲
Gradle技术之一Groovy语法精讲gradle脚本是基于groovy语言开发的,想要学好gradle必须先要对groovy有一个基本的认识1.Groovy特点groovy是一种DSL语言,所谓的DSL语言,就是专门针对某一特定领域的语言,专精而不专广是一种基于JVM的开发语言,也是编译成class字节码文件结合和Pytho
九路 九路
4年前
Gradle系列之三 Gradle概述以及生命周期
1Gradle是一种编程框架gradle主要由以下三部分组成1groovy核心语法2buildscriptblock3gradleapi注:本章所有的代码都在https://github.com/jiulu313/gradledemo.git如下图73485499237410.png(https://img
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java8新特性
Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str
Wesley13 Wesley13
3年前
java类与对象
java类的定义:classPerson{//成员变量的定义privateintid;privateintage;//方法定义publicintgetAge(){returnage;}publicvoidsetAge(inti){age1}}1、类的定义主要有两方面组成:一是成员变量二是方法
浪人 浪人
4年前
深入不可变类 -- 谈谈Java String与包装类的底层实现
深入不可变类——谈谈String与包装类的底层实现一、走进不可变类不可变类是指在创建实例后该例变量不可以改变的类。比如String类和包装类。定义不可变类需要遵守:1.成员变量设置为priavte,final修饰2.提供带参构造器对成员变量进行初始化3.只提供getter,
Wesley13 Wesley13
3年前
IOS全局变量
IOS中的全局变量和JAVA中的全局变量定义和使用方法不一样,在Java中,只需要将变量定义为static就行了。而在IOS中这种方法不适合。IOS中定义全局变量有三种方法:1.使用extern关键字在AppDelegate.m或AppDelegate.h中写入你需要的全局变量名,例如:int name;注意定义全局变量时候不能初始化,否则报错
Stella981 Stella981
3年前
Gradle的基本使用
Gradle的介绍Gradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。Gra
Stella981 Stella981
3年前
Gradle使用杂记
1、配置环境变量GRADLE\_HOME2、把gradle缓存目录指向了gradle安装目录下的.gradle目录,设置环境变量GRADLE\_USER\_HOMEGRADLE\_USER\_HOME%GRADLE\_HOME%\\.gradle或者指定目录GRADLE\_USER\_HOMED:\\gradle\\.grad
Stella981 Stella981
3年前
Groovy中方法的调用实现方式浅析(CallSite)
 在Groovy中可以很方便的交换两个变量的值,如:def (a, b)  1, 2;(a, b)  b, a; 这样,a,b变量的值就交换了,那么Groovy是怎样实现的呢? 来看看生成的字节码文件,关键的代码如下:  // Method descriptor 39 ()
小万哥 小万哥
1年前
深入剖析 Java 类属性与类方法的应用
Java类属性Java类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。创建类属性在类定义中声明属性:javapublicclassMainintx;//属性Stringname;//属性访问类属性使用点语法访问对象的属性:javaMainmy