我用Swift 3编写了以下简单代码:

let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)

从Xcode 9 beta 5中,我得到以下警告:

不推荐使用"substring(to:)":请使用带有"部分范围从"运算符的String切片下标.

如何在Swift 4中使用此slicing subscript with partial range from

推荐答案

应该是leave one side empty,因此称为"部分范围".

let newStr = str[..<index]

同样代表partial range from名操作员,只需让另一侧空置即可:

let newStr = str[index...]

请记住,这些范围运算符返回Substring.如果要将其转换为字符串,请使用String的初始化函数:

let newStr = String(str[..<index])

您可以阅读更多关于新子字符串here的信息.

Swift相关问答推荐

当我点击模拟器中的文本字段时,UIKit CLLocationButton崩溃

ARRaycast Query和前置摄像头(ARFaceTrackingConfiguration)

如何使用变量 Select 哪个向量(?)在我的 struct 中密谋吗?

UICollectionViewCompostionalLayout Collectionview单元格宽度在重新加载数据后未正确调整大小

使用`JSONSerialiser`时,省略通用可选项

SwiftUI路径平滑连接两条线

为什么 UITapGestureRecognizer 对于 Swift 集合视图中的单元格图像无法正常工作?

领域异常中的相同方法:发送到实例的无法识别的 Select 器

需要将 json 映射到 Swift 中的模型

无法使用 RealityKit 播放 USDZ 动画

swift 是否遇到 Java 的 2gb 最大序列化大小问题?

try 制作一个 Swift 扩展来替换字符串中的多次出现

不使用 ViewController 时如何显示推送通知的alert 对话框

如何在 SwiftUI 中通过按钮点击一次为一个更改设置动画?

在 Swift 中,如何查看 Process() 传递给 shell 的字符串?

如何防止 UITableViewCell 移动(Swift 5)

swift 如何从 Int 转换?到字符串

在 Swift 中获取双精度的小数部分

如何更改弹出框的大小

用 UIBezierPath 画一条线