Generic Function

stride(from:to:by:)

Returns a sequence from a starting value to, but not including, an end value, stepping by the specified amount. 指定の量だけ歩を進めて、始まりの値から終わりの値まで、しかしそれは含めないシーケンスを返します。

Declaration 宣言

func stride<T>(from start: T, to end: T, by stride: T.Stride) -> StrideTo<T> where T : Strideable

Parameters パラメータ

start

The starting value to use for the sequence. If the sequence contains any values, the first one is start. シーケンスに使うための開始値。シーケンスが何らかの値を含むならば、最初のものはstartです。

end

An end value to limit the sequence. end is never an element of the resulting sequence. シーケンスに限界を設けるための終了値。endは、決して結果シーケンスの要素ではありません。

stride

The amount to step by with each iteration. A positive stride iterates upward; a negative stride iterates downward. 各反復でそれだけ間隔をとることになる量。正のstrideは上向きに反復していきます;負のstrideは下向きに反復していきます。

Return Value 戻り値

A sequence from start toward, but not including, end. Each value in the sequence steps by stride. startから、そして含めずに、endへ向かってのシーケンス。このシーケンスの各値は、strideだけまたいで越えます。

Discussion 解説

You can use this function to stride over values of any type that conforms to the Strideable protocol, such as integers or floating-point types. Starting with start, each successive value of the sequence adds stride until the next value would be equal to or beyond end. あなたは、この関数を使ってStrideableプロトコルに準拠する任意の型、例えば整数や浮動小数点型の値いくつかをまたいで越すことができます。startで開始して、シーケンスのそれぞれ次の値はstrideを、次の値がendに等しいか越えるまで加えます。


for radians in stride(from: 0.0, to: .pi * 2, by: .pi / 2) {
    let degrees = Int(radians * 180 / .pi)
    print("Degrees: \(degrees), radians: \(radians)")
}
// Degrees: 0, radians: 0.0
// Degrees: 90, radians: 1.5707963267949
// Degrees: 180, radians: 3.14159265358979
// Degrees: 270, radians: 4.71238898038469

You can use stride(from:to:by:) to create a sequence that strides upward or downward. Pass a negative value as stride to create a sequence from a higher start to a lower end: あなたは、stride(from:to:by:)を使って上向きまたは下向きにまたいで越えるシーケンスを作成できます。負の値をstrideとして渡して、上方から開始して下方に終わるシーケンスを作成してください:


for countdown in stride(from: 3, to: 0, by: -1) {
    print("\(countdown)...")
}
// 3...
// 2...
// 1...

If you pass a value as stride that moves away from end, the sequence contains no values. あなたがある値をstrideとして渡してそれがendから離れていくならば、シーケンスは全く値を含みません。


for x in stride(from: 0, to: 10, by: -1) {
    print(x)
}
// Nothing is printed.

See Also 参照

Strides ストライド