31

Swift で Stride 機能を使用する方法を理解しようとしています。

Xcode 7.0 beta 6 以降、再び変更されたようです。

以前は使用できました

let strideAmount = stride(from: 0, to: items.count, by: splitSize)
let sets = strideAmount.map({ clients[$0..<advance($0, splitSize, items.count)] })

さて、コードのヒントにもかかわらず、この機能の使い方がわかりません。

どんな例でも役に立ちます。

を見てきましたが、使い方がわかりません。Apple Docs から得られるものは限られています。

ありがとう

4

2 に答える 2

67

少し変更されました。新しい構文は次のとおりです。

0.stride(to: 10, by: 2)

Array(0.stride(to: 10, by: 2)) // is [0, 2, 4, 6, 8]

ここを見てみると、どの型がStrideableプロトコルに準拠しているかがわかります。

@RichFox が指摘したように、Swift 3.0 では、構文は次のような元のグローバル関数形式に戻りました。

stride(from:0, to: 10, by: 2)
于 2015-08-25T07:34:53.853 に答える
1

Swift 4.2 でのストライド機能の使用

12345
 2345
  345
   45
    5
    5
   45
  345
 2345
12345


for i in 1...5{
    for k in 1...i{
        print(terminator : " ")
    }
    for j in stride(from: i, to: 6, by: 1){
        print(j , terminator : "")
    }

    print(" ")
}
for i in stride(from: 5, to: 0, by: -1)
{
    for k in 1...i{
        print(terminator : " ")
    }
    for j in stride(from: i, to: 6, by: 1){
        print(j,terminator : "")
    }
    print(" ")
}
1 2 3 4 5
 2 3 4 5
  3 4 5
   4 5
    5
    5
   4 5
  3 4 5
 2 3 4 5
1 2 3 4 5
for i in 1...5{
    for k in 0...i{
        print(terminator : " ")
    }
    for j in stride(from: i, to: 6, by: 1){
        print(j , terminator : " ")
    }

    print(" ")
}

for i in stride(from: 6, to: 1, by: -1){
    for k in 1...i{
        print(terminator : " ")
    }
    for j in stride(from: i-1, to: 6, by: 1){
        print(j , terminator : " ")
    }

    print(" ")
}
于 2019-11-12T05:11:09.930 に答える