Z
ZHANK
集合类型

字符串与字符

多行字符串字面量、字符串插值、Unicode 正确、Substring 切片

字符串与字符

Swift 字符串正确处理 Unicode——每个 Character 是一个扩展字位簇(可能由多个 Unicode 标量组成)。

学完本章你将: 掌握多行字符串、插值、Substring 切片。


基本操作

swift
let s = "Hello, Swift!"

s.count          // 13
s.isEmpty        // false
s.uppercased()   // "HELLO, SWIFT!"
s.lowercased()   // "hello, swift!"
s.hasPrefix("He") // true
s.hasSuffix("!")  // true
s.contains("Swift") // true

字符串插值与多行

swift
let name = "小明"
let greeting = "Hello, \(name)!"  // "Hello, 小明!"

// 多行字符串 """
let poem = """
    这是第一行
    这是第二行
        "引号不需要转义"
    """

Substring —— 切片不拷贝

swift
let str = "Hello, World"

let index = str.firstIndex(of: ",") ?? str.endIndex
let hello = str[..<index]     // "Hello"——Substring 类型
let world = str[str.index(after: index)...]  // " World"

// Substring 共享原字符串的内存——高效
// 长期存储时转为 String
let permanent = String(hello)