gpt4 book ai didi

swift - 如何在 Swift 中偏移 Range

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

假设我们有一个任意的 Range<T>我们想用 startIndex 创建一个新范围和 endIndex进步了 50 个单位。

我的第一个想法是这样做:

let startIndex = advance(range.startIndex, 50)
let endIndex = advance(range.endIndex, 50)
var newRange = startIndex..<endIndex

但这给出了“ fatal error :无法增加 endIndex”。 (好吧,它与 Range<String.Index> 一起使用。我还没有尝试过使用其他通用参数。)我已经尝试了很多这种排列,包括分配 range.startIndexrange.endIndex到新变量等。没有任何效果。

我要强调一下,我正在寻找适用于任何 的解决方案T . GoZoner 在下面给出了一个我没有尝试过的答案 Int ,但如果它有效,我不会感到惊讶。但是,当 T 时,我尝试的任何排列都不起作用。是String.Index

那么,我该怎么做呢?

最佳答案

advance 的第二个版本需要最大索引不超过:

let s = "Hello, I must be going."
let range = s.startIndex..<s.endIndex

let startIndex = advance(range.startIndex, 50, s.endIndex)
let endIndex = advance(range.endIndex, 50, s.endIndex)
var newRange = startIndex..<endIndex

if newRange.isEmpty {
println("new range out of bounds")
}

关于swift - 如何在 Swift 中偏移 Range<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28254064/

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