相关疑难解决方法(0)

Swift中的反向范围

有没有办法在Swift中使用反向范围?

例如:

for i in 5...1 {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

是一个无限循环.

我知道我可以使用1..5,计算j = 6 - i和使用j我的索引.我只是想知道是否有更清晰的东西?

swift

95
推荐指数
4
解决办法
3万
查看次数

是否有一种简单的方法可以向后迭代NSArray?

我有一个NSArray并且必须在特殊情况下向后迭代它,所以我先看看最后一个元素.这是出于性能原因:如果最后一个没有意义,那么所有以前的都可以被忽略.所以我想打破循环.但是,如果我从0向前迭代,那将无效.我需要从n到0.也许有一个我不知道的方法或功能,所以我不必在这里重新发明轮子.

objective-c nsarray

67
推荐指数
3
解决办法
2万
查看次数

什么是向后遍历字符串字符的好方法?

通过字符串中的字符向后迭代的最Swiftian方法是什么?即for ch in str,只是反过来?

我想我必须遗漏一些明显的东西,因为我刚才能想到的最好的是:

    for var index = str.endIndex; 
            index != str.startIndex; 
            index = index.predecessor() {
        let ch = str[index.predecessor()]
        ...
    }
Run Code Online (Sandbox Code Playgroud)

我意识到"什么是最好的..."可能被归类为主观的; 我想我真正想要的是一种简洁易读的方法.

编辑:虽然reverse()工作并且很简洁,但与上面相比,它看起来可能效率很低,即看起来它实际上并不是向后迭代,而是在字符串中创建字符的完整反向副本.如果你正在寻找一些10,000字符字符串末尾通常是几个字符的东西,那么这比我原来的要糟糕得多.因此,我暂时搁置这个问题以吸引其他方法.

swift

11
推荐指数
2
解决办法
1万
查看次数

Swift for loop向后

是否可以创建倒置Range

我的意思是从99到1,而不是相反.我的目标是将值从99迭代到1.

这不会编译,但它应该让你知道我正在尝试做什么:

for i in 99...1{
    print("\(i) bottles of beer on the wall, \(i) bottles of beer.")
    print("Take one down and pass it around, \(i-1) bottles of beer on the wall.")
}
Run Code Online (Sandbox Code Playgroud)

什么是实现这一目标的最简单方法Swift

iteration for-loop swift

3
推荐指数
1
解决办法
1964
查看次数

递减For()循环

递减for()循环的语法是什么?

我想做以下类似的事情而不会出现编译错误:

for ndx in 5...4 {
    print("do something")
}
Run Code Online (Sandbox Code Playgroud)

for-loop swift3

0
推荐指数
1
解决办法
1515
查看次数

从上限值到下限值的快速循环

我有一个像这样定义的 Swift for 循环:

 for i in 20...1 {
    array.append(i)
 }
Run Code Online (Sandbox Code Playgroud)

但我收到消息崩溃

  Thread 1: Fatal error: Can't form Range with upperBound < lowerBound
Run Code Online (Sandbox Code Playgroud)

什么是修复?

swift swift4

-2
推荐指数
1
解决办法
1557
查看次数

标签 统计

swift ×4

for-loop ×2

iteration ×1

nsarray ×1

objective-c ×1

swift3 ×1

swift4 ×1