3.1 变量的类型
在Groovy中,没有基本数据类型,只有对象类型,表面上我们定义基本数据类型,但实际都会帮我们装箱处理:
无论定义基本数据类型还是对象类型,其实都会帮我们转为对象类型
但是对于程序员来说,写代码没有影响
3.2 变量的定义
(1)强类型定义方式
数据类型 变量名 = 初始值
(2)弱类型定义方式
根据值可以推断出变量的数据类型,所以类型不用显示声明,直接用def即可
def 变量名 = 初始值
用def这种弱类型定义可以随便改变类型。
如果不希望别人改变数据类型,用强类型
如果是你自己使用,并且想要随意更改类型,那么就用弱类型
3.3 字符串
3.3.1 字符串的常用定义方式
(1)单引号定义方式
(2)双引号定义方式
**(3)三引号定义方式
package com.msb.test01
//单引号形式定义字符串:等价于Java中双引号的定义方式:
def str1 = 'hi groo\nvy1'
println str1
println str1.class //class java.lang.String
//双引号形式定义字符串:
def str2 = "hi groovy2"
println str2
println str2.class //class java.lang.String
//三引号形式定义字符串:
def str3 = '''hi groovy3'''
println str3
println str3.class //class java.lang.String
//三种方式区别在哪里:
//用单引号形式定义字符串,那么字符串的格式需要自己去控制,比如加:转义字符
//用三引号的形式,我们可以直接在字符串中定义格式:
//如果想要写的形式和展示形式一样,可以在第一个三引号后加入\
def str4 = '''\
hi
groovy4'''
println str4
//双引号形式的字符串:可扩展字符串:
def str5 = "groovy5"
def str6 = "hi ${str5}" //拼接变量
println str6 //hi groovy5
println str6.class //class org.codehaus.groovy.runtime.GStringImpl
//拼接表达式:可扩展表达式融入到字符串中去
def str7 = "100 + 100 = ${100 + 100}"
println str7
println str7.class
//总结:双引号形式定义用的最多 - 因为可扩展特性
//String和GString使用的时候不用互相转化:
//验证:
def str8 = test(str6)//GString类型作为实参传入test方法中,返回String类型
println str8
println str8.class
//定义方法:
String test(String s){
return s
}