在 Swift 4 中,当我尝试采取Substring
of a String
使用下标语法。
'subscript' 不可用:无法使用 CountableClosedRange 为 String 下标,请参阅文档注释进行讨论
例如:
let myString: String = "foobar"
let mySubstring: Substring = myString[1..<3]
两个问题:
- 我该如何解决这个错误?
- 错误中提到的“讨论的文档注释”在哪里?
- 如果你想在字符串上使用下标,例如
"palindrome"[1..<3]
and "palindrome"[1...3]
,使用这些扩展。
Swift 4
extension String {
subscript (bounds: CountableClosedRange<Int>) -> String {
let start = index(startIndex, offsetBy: bounds.lowerBound)
let end = index(startIndex, offsetBy: bounds.upperBound)
return String(self[start...end])
}
subscript (bounds: CountableRange<Int>) -> String {
let start = index(startIndex, offsetBy: bounds.lowerBound)
let end = index(startIndex, offsetBy: bounds.upperBound)
return String(self[start..<end])
}
}
Swift 3
对于 Swift 3 替换为return self[start...end]
and return self[start..<end]
.
- Apple 没有将其构建到 Swift 语言中,因为“字符”的定义取决于字符串的编码方式。一个字符可以是8到64位,默认通常是UTF-16。您可以在中指定其他字符串编码
String.Index
.
这是文档 https://github.com/apple/swift/blob/b8401e1fde52d95e5a8ce7b043a3c5a3bcf72181/stdlib/public/core/UnavailableStringAPIs.swift.gyb#L15Xcode 错误指的是。
有关 UTF-8 和 UTF-16 等字符串编码的更多信息 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)