gpt4 book ai didi

ios - 复杂的 Swift 扩展

转载 作者:可可西里 更新时间:2023-11-01 01:39:15 24 4
gpt4 key购买 nike

我想在 Swift 中为 String 类创建一个扩展,允许您像在 Python 中一样通过下标运算符获取子字符串。这可以通过以下方式使用 Range 类来完成

extension String {

subscript (range: Range<Int>) -> String? {
if range.startIndex < 0 || range.endIndex > count(self) {
return nil
}
let range = Range(start: advance(startIndex, range.startIndex), end: advance(startIndex, range.endIndex))
return substringWithRange(range)
}
}

这使得以下用法成为可能

let string = "OptimusPrime"
string[0...6] // "Optimus"

但是,我希望能够使用负整数从结尾和开头索引字符串。

string[7...(-1)] // "Prim"

由于 Range 类不允许 startIndex 大于 endIndex 上述扩展不足以实现此行为。

由于 Range 对象显然不能用于此扩展,所以对我来说简单地使用与 Python 中相同的语法是有意义的

string[0:2] // "Op"
string[0:-1] // "OptimusPrim"

这可能吗?我该怎么做呢?

最佳答案

我想你可以得到类似 python 的语法:

subscript (start:Int, end:Int) -> String?

哪个会让你走 "bla bla[0,3]

然后如果你输入一个负数,只需将它转换为字符串长度减去负数,这样范围是有效的

关于ios - 复杂的 Swift 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com