文章目錄
-
- 一、字元串類型變量
- 二、多行字元串
- 三、完整代碼示例
一、字元串類型變量
在雙引号字元串中 , 使用 ${變量名} 進行字元串拼接 ,
- ${變量名} 符号的取值 , 是在 定義時取值 ;
def s1 = "Hello"
def s3 = "${s1} World!!!"
s1 = "Hello Groovy" // 修改被拼接的函數值
// 列印的值為 "Hello World!!!"
println s3
- ${->變量名} 符号的取值 , 是在 通路時取值 , 不是在定義時取值 , 如果通路前 , 修改了 變量名 對應的變量值 , 則最後取值是修改後的值 ; 這是閉包的規則 ;
def s1 = "Hello"
def s4 = "${->s1} World!!!"
s1 = "Hello Groovy" // 修改被拼接的函數值
// 列印的值為 "Hello Groovy World!!!"
println s4
在 單引号 中 , 不能進行字元串連接配接操作 ;
// 單引号中不能進行字元串拼接
def s5 = '${s1} World!!!'
// 列印的值為 "${s1} World!!!"
println s5
字元串拼接代碼示例 :
// 字元串
def s1 = "Hello"
// 字元串拼接
// 注意 , 雙引号中才能進行字元串拼接 , 單引号中不行
// ${變量名} 符号的取值 , 是在 定義時取值 ;
def s3 = "${s1} World!!!"
// ${->變量名} 符号的取值 , 是在 通路時取值 , 不是在定義時取值 ,
// 如果通路前 , 修改了 變量名 對應的變量值 , 則最後取值是修改後的值 ;
// 這是閉包的規則 ;
def s4 = "${->s1} World!!!"
// 修改被拼接的函數值
s1 = "Hello Groovy"
// 分别列印 s3 字元串内容和類型 , 修改被拼接的函數值沒有影響到最終字元串值
println s3
println s3.class
// 分别列印 s4 字元串内容和類型
// 修改被拼接的函數值 影響到了 最終字元串值
println s4
println s4.class
// 單引号中不能進行字元串拼接
def s5 = '${s1} World!!!'
// 分别列印 s4 字元串内容和類型
println s5
println s5.class
執行結果 :
Hello World!!!
class org.codehaus.groovy.runtime.GStringImpl
Hello Groovy World!!!
class org.codehaus.groovy.runtime.GStringImpl
${s1} World!!!
class java.lang.String
二、多行字元串
在 普通字元串中 , 使用 \n 符号 , 代表換行操作 ,
def m1 = "Hello\nWorld"
代表
Hello
World
字元串 ;
在
6
6
6 個雙引号之間 , 可以直接寫多行文本 , 多行文本的 左右兩側各有
3
3
3 個雙引号 ;
def m2 = """Hello
World"""
代表
Hello
World
字元串 ;
代碼示例 :
// 多行字元串輸出
def m1 = "Hello\nWorld"
def m2 = """Hello
World"""
// 列印多行字元串
println m1
println m2
執行結果 :
Hello
World
Hello
World
三、完整代碼示例
完整代碼示例 :
class Test {
static void main(args) {
// 字元串
def s1 = "Hello"
// 字元串拼接
// 注意 , 雙引号中才能進行字元串拼接 , 單引号中不行
// ${變量名} 符号的取值 , 是在 定義時取值 ;
def s3 = "${s1} World!!!"
// ${->變量名} 符号的取值 , 是在 通路時取值 , 不是在定義時取值 ,
// 如果通路前 , 修改了 變量名 對應的變量值 , 則最後取值是修改後的值 ;
// 這是閉包的規則 ;
def s4 = "${->s1} World!!!"
// 修改被拼接的函數值
s1 = "Hello Groovy"
// 分别列印 s3 字元串内容和類型 , 修改被拼接的函數值沒有影響到最終字元串值
println s3
println s3.class
// 分别列印 s4 字元串内容和類型
// 修改被拼接的函數值 影響到了 最終字元串值
println s4
println s4.class
// 單引号中不能進行字元串拼接
def s5 = '${s1} World!!!'
// 分别列印 s4 字元串内容和類型
println s5
println s5.class
// 多行字元串輸出
def m1 = "Hello\nWorld"
def m2 = """Hello
World"""
// 列印多行字元串
println m1
println m2
}
}
執行結果 :
Hello World!!!
class org.codehaus.groovy.runtime.GStringImpl
Hello Groovy World!!!
class org.codehaus.groovy.runtime.GStringImpl
${s1} World!!!
class java.lang.String
Hello
World
Hello
World