|
|
|
|
移动端

2.1 字符串

《Android Gradle权威指南》本书全面讲解了Android 下Gradle的详细用法,并结合实例,让读者达到学以致用的目的。本节为大家介绍字符串。

作者:飞雪无情来源:人民邮电出版社|2017-09-09 13:58

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


第2章 Groovy基础

Groovy是基于JVM虚拟机的一种动态语言,它的语法和Java非常相似,由Java入门学习Groovy基本上没有任何障碍。Groovy完全兼容Java,又在此基础上增加了很多动态类型和灵活的特性,比如支持闭包,支持DSL,可以说它是一门非常灵活的动态脚本语言。

Groovy的特性虽然不多,但我们不可能在这里都讲完,这也不是本书的初衷。在这里我挑一些和Gradle有关的知识讲,让大家很快入门Groovy,并且能看懂这门脚本语言,知道在Gradle中为什么这么写。每个Gradle的build脚本文件都是一个Groovy脚本文件,你可以在里面写任何符合Groovy语法的代码,比如定义类,声明函数,定义变量等;而Groovy又完全兼容Java,这就意味着你可以在build脚本文件里写任何的Java代码,非常灵活方便。

2.1 字符串

每一门编程语言都会有对字符串的处理,Java相对要稍微复杂一些,对程序员的开发限制比较多。相比而言,Groovy非常方便,比如字符串的运算、求值、正则等。

在Groovy中,分号不是必需的。相信很多用Java的读者都习惯了每一行的结束必须有分号,但是Groovy没这个强制规定,所以,你看到的Gradle脚本很多都没有分号,这是Groovy的特性,而不是Gradle的。

在Groovy中,单引号和双引号都可以定义一个字符串常量(Java里单引号定义一个字符),不同的是单引号标记的是纯粹的字符串常量,而不是对字符串里的表达式做运算,但是双引号可以,具体实例如下:

  1. task printStringClass << {  
  2. def str1 = '单引号' 
  3. def str2 = "双引号" 
  4. println "单引号定义的字符串类型:"+str1.getClass().name  
  5. println "双引号定义的字符串类型:"+str2.getClass().name  

./gradlew printStringClass 运行后我们可以看到输出:

  1. 单引号定义的字符串类型:java.lang.String  
  2. 双 引号定义的字符串类型:java.lang.String 

不管是单引号定义的还是双引号定义的都是String类型。刚刚我们讲了单引号不能对字符串里的表达式做运算,下面我们看一个例子:

  1. task printStringVar << {  
  2. def name = "张三" 
  3. println '单引号的变量计算:${name}'  
  4. println "双引号的变量计算:${name}"  

./gradlew printStringVar运行后输出:

  1. 单引号的变量计算:${name}  
  2. 双 引号的变量计算:张三 

从程序中可以看到,双引号标记的表达式输出了我们想要的结果,但是单引号没有。所以大家应记住,单引号没有运算能力,它里面的所有表达式都是常量字符串。

双引号可以直接进行表达式计算的这个能力非常好用,我们可以用这种方式进行字符串连接运算,再也不用Java中烦琐的“+”号了。记住这个嵌套的规则,一个美元符号紧跟着一对花括号,花括号里放表达式,比如${name}、${1+1}等,只有一个变量的时候可以省略花括号,如$name。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

数据库系统工程师考试全程指导

为了满足广大考生的需要,我们组织了参与过多年资格考试命题或辅导的教师,以新的考试大纲为依据,编写了《数据库系统工程师考试全程指导》...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊