【Gradle系列】Groovy语法之变量定义

941 阅读3分钟

引言

前面我们了解了groovy的一些概念

接下来我们来看下groovy的语法

学习任何一门语言,语法是语言最基础和最核心的东西

即使再怎么懂编程思想,但是不懂编程语言,那么是不可能写出具体的代码

语法的学习是没有捷径可以走的,唯一的办法就是多练

简要

groovy中的变量,主要分下面两个点:

(1)变量的类型

基本类型
对象类型

(2)变量的定义

强类型定义
弱类型定义

基本类型,如:byte,int,long等

对象类型,如:String等

这些和我们的java类似,但是我们的groovy的类型最终都是对象类型的

也就groovy是不存在基本类型的

变量的类型

首先是我们的基本型类型,groovy语言中,有这么一个特点

表面上的基本型类型最终都会被转换为引用型类型

比如下面的例子:

首先是我们的基本型类型,groovy语言中,有这么一个特点,表面上的基本型类型最终都会

被转换为引用型类型,比如下面的例子:

企业微信截图_0959ad9d-83e6-4eb8-b6e1-a68aa6f5167e.png

图片中可以看出,虽然定义的是int x = 10,但是打印出来的类型却是Integer类型

但是对于我们编程来说,是没有影响的

转换的工作都是编译器帮我们转换等的

变量的定义

这个的话和我们的java差别就比较大了

首先是定义分强类型和弱类型定义,这一点到和java有点像

上面的例子中,int x = 10 就是一种强类型的定义方式

意思就是在声明变量的过程中,也把变量的类型指定了

弱类型定义,不需要提前指定变量的类型,通过def这个关键字来告诉编译器

这一点是java没有的特点

下面举个例子:

2.png

可以看出,通过def定义的变量,编译器会去推断变量的类型

那么两种定义类型,应该怎么选择?

根据经验,一般变量如果是自己的,不会被其他类使用,或者其他应用模块

推荐def方式定义,因为自己用,自己知道类型并且可以动态转换为其他类型

如果其他类或者模块公用的变量,那么建议不要用def方式定义,因为强类型定义方式

是不能动态改变类型的,当外界传给我们值的时候,是比较明确的

举个可以动态改变的例子:

3.png

一开始a类型为int

后来直接赋值后,变为了string

好了,到这里两种变量的定义就讲完了,和java差不多,不同的是

类型的动态变化

结尾

哈哈,该篇就写到这里(一起体系化学习,一起成长)

Tips

更多精彩内容,请关注 ”Android热修技术“ 微信公众号