Gradle配置及语法笔记,进行中~~~

news/2024/5/20 4:03:22 标签: gradle

Gradle

一款最新的、功能强大的构建工具

Groovy概述(DSL编程语言的一种)

  • 基于JVM的敏捷开发语言
  • 结合了Python、Ruby和Smalltalk的许多强大的特性
  • groovy可以与Java完美结合,可以使用java所有的库
  • 语法上支持动态类型,闭包等新一代语言特性
  • 无缝集成所有已经存在的Java类库
  • 支持面向对象和面向过程(写脚本用)

groovy优势:

一种更加敏捷的编程语言
入门简单,功能非常的强大
亦可以作为编程语言和脚本语言
熟练掌握Java的同学更适合学习

groovy基础语法:

groovy变量:
  • 支持强类型语言和弱类型语言:
    可以像Java那样声明一个变量的时候就定义其类型
int x = 10;

也可以定义其为弱类型变量(变量只在一个包内作用推荐使用,跨模板时不推荐)

def x = 10;
def x = 'nice';

上述代码先将10赋值给x,此时编译器自动将x解析为Integer类型,而后又赋值一个String变量给x(在Java中是会报错的),编译器就将其有设置为String类型

groovy字符串:

可以直接使用单引号定义一个String类型变量

def name = 'a single string'  //可以不加分号

可以在输入语句中定义一个变量 ${}

def sum = "sum = 2${ + 3}"   //输出: sum = 5 (只能双引号可以字符扩展)

使用双引号定义的${}是GString类型,和String类型可以相互赋值转换
使用减法直接删除减数在被减数中的值

def x = "hello nice"
def y = "nice"
println x - y  //输出hello

闭包

闭包的概念也许我们稍微陌生一点,但是实际上,我们可以简单把它当做一个匿名类,只是编译器提供了更加简单的语法来实现它的功能。
闭包(Closure)是groovy中一个很重要的概念,而且在gradle中广泛使用。简而言之,闭包就是一个可执行的代码块,类似于C语言中的函数指针。在很多动态类型语言中都有广泛的使用,java8 中也有类似的概念:lambda expression,但是groovy中的闭包和java8中的lambda表达式相比又有很多的不同之处。

我们可以把闭包当做一个匿名内部类,只是编译器提供了更加简单的语法来实现它的功能。在Groovy中闭包也是对象,可以像方法一样传递参数,并且可以在需要的地方执行。
闭包有三个很重要的属性分别是:this,owner,delegate,分别代表以下概念:

  • this: 对应于定义闭包时包含他的class,可以通过getThisObject或者直接this获取
  • owner: 对应于定义闭包时包含他的对象,可以通过getOwner或者直接owner获取
  • delegate: 闭包对象可以指定一个第三方对象作为其代理,用于函数调用或者属性的指定,可以通过getDelgate或者delegate属性获取

列表(List)

def list = [1,2,3,4,5]  //定义的是一个长度为5的ArrayList
int[] array = [1,2,3,4,5] //定义的是一个长度为5的数组
int result = list.find {return it % 2 == 0}  //查找第一个符合闭包条件的值
def result = list.findAll {return it % 2 == 0} //查找所有符合闭包条件的值

映射(Map)

def colors = [ red: 'ff0000',
               green: '00ff00',
               blue: '0000ff']
colors.red //索引方法,获取key为red的value
colors.yellow = 'ffff00' //添加元素,添加key为yellow和value为ffff00的元素
colors.complex = [a:1, b:2] //添加元素,添加key为complex和value为[a: 1.,b: 2]的map对象
=======================================================================
def students = [
	1: [number: '0001', name: 'Bob', score: 55, sex: 'male'],
	2: [number: '0002', name: 'Johnny', score: 62, sex: 'female'],
	3: [number: '0003', name: 'Claire', score: 73, sex: 'female'],
	4: [number: '0004', name: 'Amy', score: 66, sex: 'male'],
]
//遍历
students.each { def student -> println "the kry is ${student.key}," 
+ "the value is ${student.value}"  //获取了students里所有的key和value

面向对象

注意:
1.groovy中类和方法默认都是public
2.写脚本可在IDEA中创建一个groovy script类
3.接口中不可以写非public类型的方法

元编程

在Java中查找一个类,找不到就会报错,groovy的元编程中,找不到一个类也会继续运行下去(粗略解释)

groovy中对Json的操作

实体类转化为Json对象:

def list = [new Person(name: 'John', age: 25),
			new Person(name: 'Major', age: 26)]
JsonOutput.toJson(list)  // 转化为Json对象

Json对象转化为实体类:

def jsonSlpuer = new JsonSlurper()
jsonSlpuer.parse()  //创建 一个JsonSluper对象,用其中的parse()方法即可

groovy对xml文件的处理

final String xml = "..."
//开始解析此xml数据
def xmlSluper = new XmlSlurper()
def response = xmlSluper.parseText(xml)

groovy对普通文件的处理

所有Java对文件的处理类,groovy都可以使用
而groovy还有其特有的处理方法

def file = new File('文件所在路径')
file.eachLine { line ->  //groovy中的eachLine方法,作用是读取该文件中的每一行
	println line         //输出每一行
} 
=========================================================================
def text = file.getText()  //获取文件更简单的方法
println text 
=========================================================================
def reader = file.withReader { reader -> 
	char[] buffer = new char[100]		//获取前100个字符
	reader.read(buffer)
	return buffer
}

gradle__138">gradle是什么, 能做什么


http://www.niftyadmin.cn/n/899781.html

相关文章

游戏建模好还是工业建模就业前景好?

今天小编给大家分享一下建模师的分类,还有该怎么选择适合自己的方向。 首先3D建模一般分为游戏建模和工业建模两种,游戏建模主要是负责游戏里模型的制作,而工业建模分为室内和室外两种,在制作模型的过程相比于游戏建模更加简单&a…

关于Eclipse中Spring的配置文件中文变成转义字符问题

打开window下的preferences,搜索框输入Content Types ,找到如下图的java Properties File修改默认编码ISO-8859-1为utf8,保存重新输入即可

资深游戏建模师带你全面了解次世代发展前景

今天来说说新人阶段会疑惑的一些问题。可能有的地方说的不好还请多多包涵。 希望未来能和各路高手多多交流,一起探讨更多行业经验和干货,分享给大家。 先来说下游戏美术的从过去、现在、将来到模型师的两个专业分类。 过去: 国内游戏外包…

mysql5.7的my.ini配置文件在哪里

如果下载好的mysql5.7根目录里没有my.ini配置文件 那么应该在C:\ProgramData\MySQL\MySQL Server 5.7 (如果是安装在c盘的话)

游戏建模学习之3D建模烘焙贴图介绍——贴图的基础知识

烘焙贴图,其实就是将模型与模型之间的光影关系通过图片的形式转换出来,这样就形成了一种贴图,将这种贴图控制在模型上,可以得到一种假的但很真实果。 烘焙的贴图有:法线贴图,OCC或ao贴图,转换贴…

游戏建模学习技巧分享

随着游戏行业的发展,3d建模这一职业也成为了越来越多人的选择,但是掌握一项新技能是需要时间和精力的,如果自己真的热爱游戏行业,也会从中得到很多乐趣。 今天和大家分享游戏建模相关的问题,希望能够在建模学习中帮到…

tomcat的端口被占用的解决方案

1.启动cmd 2.查看需要使用的端口号,例如8080 输入命令:netstat -ano|findstr 8080 显示: 此处的“3920”为占用端口的进程号 3.杀死占用端口的进程 输入命令:taskkill /pid 3920 /f 显示:

游戏建模实战教程:《黎明杀机》中的鬼武士,Maya和ZBrush制作全流程

艺术家介绍: Pom来自泰国,梦想成为3D艺术家。他有绘制漫画的经验,制作喜欢的角色是他表达艺术的一种方式。 这个制作中分享了他的对于日式鬼怪角色的一些制作细节,该角色的原型是基于《黎明杀机Dead by Daylight》中的杀手&…