字串和字元(Strings and Characters)
String
是例如 "hello, world"、"hi" 這樣的有序的Character
(字元)型別的值的集合,透過String
型別來表示。Swift 的
String
和Character
型別提供了一個快速的、相容 Unicode 的方式來處理程式碼中的文字訊息。字串連接操作只需要簡單地透過
+
號將兩個字串相連即可。與 Swift 中其他值一樣,能否更改字串的值,取決於其被定義為常數(
let
)還是變數(var
)。Swift 可以在常數、變數、字面量和表達式中進行字串插值操作,可以輕鬆創建用於顯示、儲存和列印的自定義字串。
1.初始化空字串 (Initializing an Empty String)
為了建構一個很長的字串,可以創建一個空字串作為初始值。 可以將空的字串字面量指派給變數,也可以初始化一個新的String
實體:
var emptyString = "" // 空字串字面量
// 初始化 String 實體
你可以透過檢查其Boolean
型別的isEmpty
屬性來判斷該字串是否為空:
if emptyString.isEmpty {
print("Nothing to see here")
}
// prints "Nothing to see here"
2.字串可變性 (String Mutability)
你可以透過將一個特定字串分配給一個變數來對其進行修改,或者分配給一個常數來保證其不會被修改:
var variableString = "Horse"
variableString += " and carriage"
// variableString 現在為 "Horse and carriage"
let constantString = "Highlander"
constantString += " and another Highlander"
// 這會回報一個編譯錯誤 (compile-time error) - 常數(let)不可以被修改。
3.連接字串和字元 (Concatenating Strings and Characters)
字串和字元的值可以透過加法運算子(+
)相加在一起並創建一個新的字串值:
let string1 = "hello"
let string2 = " there"
let stringPlusString = string1 + string2
// 等於 "hello there"
var threeImportantWords = "I Love You"
let language = "swift "
threeImportantWords = threeImportantWords + language
//輸出結果:"swift I Love You"
//也可以這樣寫:threeImportantWords += language
4.字串插值 (String Interpolation)
字串插值是一種構建新字串的方式,可以在其中包含常數、變數、字面量和表達式。
你插入的字串字面量的每一項都被包裹在以反斜線為前綴的圓括號中:
let name = "Jerry"
var age:Int = 18
var now = "I'm \(name) and I'm \(age)"
let multiplier = 3
let message = "\(multiplier) 乘以 2.5 是 \(Double(multiplier) * 2.5)"
// message 是 "3 乘以 2.5 是 7.5"
在上面的範例中,multiplier
作為\(multiplier)
被插入到一個字串字面量中。 當創建字串執行插值計算時此占位符(placeholder)會被替換為multiplier
實際的值。
multiplier
的值也作為字串中後面表達式的一部分。 該表達式計算Double(multiplier) * 2.5
的值並將結果 (7.5) 插入到字串中。 在這個範例中,表達式寫為\(Double(multiplier) * 2.5)
並包含在字串字面量中。