swift - 使用下标时出错(下标(_:)' 不可用:)
问题描述
我收到 2 个下标语法错误
第一个错误是:
'subscript(_:)' 不可用:不能用整数范围为 String 下标,请改用 String.Index 范围。
第二个错误是:
对泛型类型“Range”的引用需要 <...> 中的参数
extension String {
var length: Int {
return self.count
}
subscript (i: Int) -> String {
return self[i ..< i + 1]. //error1
}
subscript (r: Range) -> String {. //error2
let range = Range(uncheckedBounds: (lower: max(0, min(length, r.lowerBound)),
upper: min(length, max(0, r.upperBound))))
let start = index(startIndex, offsetBy: range.lowerBound)
let end = index(start, offsetBy: range.upperBound - range.lowerBound)
return String(self[start ..< end])
}
}
var sa : String = "hello"
sa[2] // l
sa[0..<4] // hell. //error1
是不是因为代码是用swift 3写的?
解决方案
推荐阅读
- c# - Visual Studio 2019 - 通过数据网关连接到 SQL Server
- java - 无法自动接线。找不到“MyUserDetailsService”类型的 bean
- python - 从用户输入(表单)(pythong/flask)发送带有 gmail-api 的附件
- sql - 获取 x.66 和 x.99 之间的分数
- angular - 如果数据库具有角度值,我如何使图像不需要?
- google-apps-script - 如何使用 Google Apps 脚本从网站获取特殊字符
- c# - 在反向代理后面运行时生成指向自身的链接
- tailwind-css - Tailwind CSS IntelliSense for monaco-editor
- c++ - 当文件在内存中时,使用 QDesktopServices::openurl 打开本地文件的等效方式
- python - 测试函数内部的方法调用