結構
Static
StaticString
一種字符串類型,旨在表示在編譯時已知的文本。
聲明
@frozen struct StaticString
概述
StaticString
類型的實例是不可變的。
StaticString
隻提供對其內容的低級訪問,這與 Swift 更常用的 String
類型不同。靜態字符串可以使用以下任一項作為其存儲:
-
指向以空字符結尾的 UTF-8 代碼單元序列的指針:
let emoji: StaticString = "\u{1F600}" emoji.hasPointerRepresentation //-> true emoji.isASCII //-> false emoji.unicodeScalar //-> Fatal error! emoji.utf8CodeUnitCount //-> 4 emoji.utf8Start[0] //-> 0xF0 emoji.utf8Start[1] //-> 0x9F emoji.utf8Start[2] //-> 0x98 emoji.utf8Start[3] //-> 0x80 emoji.utf8Start[4] //-> 0x00
-
在非常有限的情況下,單個 Unicode 標量值:
struct MyStaticScalar: ExpressibleByUnicodeScalarLiteral { typealias UnicodeScalarLiteralType = StaticString let value: StaticString init(unicodeScalarLiteral value: StaticString) { self.value = value } } let emoji: StaticString = MyStaticScalar("\u{1F600}").value emoji.hasPointerRepresentation //-> false emoji.isASCII //-> false emoji.unicodeScalar.value //-> 0x1F600 emoji.utf8CodeUnitCount //-> Fatal error! emoji.utf8Start //-> Fatal error!
您可以使用 withUTF8Buffer(_:)
方法訪問靜態字符串的內容,而不管靜態字符串使用哪種表示形式。
emoji.withUTF8Buffer { utf8 in
utf8.count //-> 4
utf8[0] //-> 0xF0
utf8[1] //-> 0x9F
utf8[2] //-> 0x98
utf8[3] //-> 0x80
utf8[4] //-> Fatal error!
}
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相關用法
- Swift String.UTF8View first用法及代碼示例
- Swift String.UTF16View firstIndex(where:)用法及代碼示例
- Swift String init()用法及代碼示例
- Swift String.UTF16View last(where:)用法及代碼示例
- Swift String.UnicodeScalarView flatMap(_:)用法及代碼示例
- Swift String.UTF8View split(maxSplits:omittingEmptySubsequences:whereSeparator:)用法及代碼示例
- Swift String init(_:radix:uppercase:)用法及代碼示例
- Swift String.UTF8View elementsEqual(_:)用法及代碼示例
- Swift String.UnicodeScalarView min(by:)用法及代碼示例
- Swift StrideThrough map(_:)用法及代碼示例
- Swift String.UnicodeScalarView lastIndex(of:)用法及代碼示例
- Swift String.UTF8View last(where:)用法及代碼示例
- Swift String.Index ..<(_:_:)用法及代碼示例
- Swift String.UTF8View split(separator:maxSplits:omittingEmptySubsequences:)用法及代碼示例
- Swift StrideTo allSatisfy(_:)用法及代碼示例
- Swift StrideTo joined(separator:)用法及代碼示例
- Swift String.UnicodeScalarView filter(_:)用法及代碼示例
- Swift StrideTo drop(while:)用法及代碼示例
- Swift StrideTo filter(_:)用法及代碼示例
- Swift String.UTF8View debugDescription用法及代碼示例
- Swift String init(cString:)用法及代碼示例
- Swift StrideThrough reduce(_:_:)用法及代碼示例
- Swift String suffix(from:)用法及代碼示例
- Swift String.UTF16View flatMap(_:)用法及代碼示例
- Swift String removeAll(where:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 StaticString。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。