Есть ли в Swift 'for loop', где индекс может увеличиться в X раз - PullRequest
0 голосов
/ 19 мая 2018

Мне было интересно, есть ли в swift способ манипулирования индексом выполнения на for loop.

Использование в то время как программа должна делать следующее:

var runIndex = 1
while runIndex <= 100000000 {
    print(runIndex)
    runIndex = runIndex * 10;
}

В Java будет выглядеть следующим образом:

for (int runIndex=1; runIndex <= 100000000; runIndex = runIndex*10){
    System.out.println(runIndex);
}

Я смотрел на stride, но, кажется, не делает фактор, он только делает линейный

for runIndex in stride(from: 1, to: 100000000, by: 10) {
    print(runIndex)
}

1 Ответ

0 голосов
/ 19 мая 2018

Аналог Swift:

for (int runIndex=1; runIndex <= 100000000; runIndex = runIndex*10){
    System.out.println(runIndex);
}

, который дает идентичный вывод:

var runIndex = 1
while runIndex <= 100000000 {
    print(runIndex)
    runIndex = runIndex * 10;
}

:

for runIndex in (sequence(first: 1) {$0 >= 100000000 ? nil : $0*10}) {
    print(runIndex)
}

См. https://developer.apple.com/documentation/swift/2015879-sequenceи обратите внимание, что документация фактически использует ваш собственный вариант использования, то есть последовательные полномочия (из 2), в качестве примера!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...