swift - 如何修复不推荐使用的子字符串(带有:)
问题描述
我正在完成一个书籍练习,作者有以下代码。
func getMatchingString(str: String) -> String? {
if let newMatch = str.range(of:regExFindMatchString,
options:.regularExpression) {
return str.substring(with: newMatch)
} else {
return nil
}
}
str.substring(with: newMatch) 行显示 'substring(with:) is deprecated use String slicing subscript.'
我试图弄清楚用什么来解决这个问题,但我尝试过的一切都表明我对这个问题的理解还不够好,无法解决它。我知道 newMatch 是一个范围对象,只是不知道如何有效地使用它。
任何帮助是极大的赞赏..
鲍勃
解决方案
只需将下标与您从if let
if let newMatchRange = str.range(of:regExFindMatchString, options:.regularExpression) {
return String(str[newMatchRange])
} else {
return nil
}
您需要将其转换为字符串,因为该方法实际上返回的是子字符串类型,而不是字符串。
推荐阅读
- javascript - 谷歌为数组中的圆圈映射事件监听器;怎么了?
- symfony - Symfony 4 Guard Neo4j OGM
- python - python中用于检查点是否可以线性分离的数值精确线性规划?
- laravel-5.2 - 类 Illuminate\Routing\Redirector 的对象无法转换为字符串
- python - 查找字典中特定值的数量 [Python]
- node.js - 如何处理异步类型任务的ack
- java - 在运行时从给定接口模仿实现方法
- python - Python / Selenium - 无法在 Instagram 搜索输入中提交密钥
- r - ggplotly on geom_bar and coord_flip seems to fail
- r - 有条件地操作 R Dataframe