Stride() та приклади використання

Знайшов чудову функцію stride(from: to:\through: by: ), яка робить цикл for більш зручним і гнучким у використанні. Для кращого розуміння розглянемо наступний приклад :

for i in stride(from: 1, to: 100, by: 3) {
    print("i =", i)
}

Цей код буде виводити значення змінної i в межах від 1 до 100 (невключно) з кроком 3, тобто отримаємо наступний результат:

i = 1
i = 4
i = 7
...
i = 91
i = 94
i = 97

Якщо ми використаємо замість to:through: , тоді цикл виконається включно з заданим значенням. Саме тому, маємо наступний код:

for i in stride(from: 1, through: 100, by: 3) {
    print("i =", i)
}
 

І результат його виконання:

i = 1
i = 4
i = 7
...
i = 94
i = 97
i = 100

Наведу приклад використання stride() для знаходження суми двох матриць:

// задаємо матрицю A, B і C. А і B - заповнюємо довільними значеннями.
let matrixA = [[1, 3, 4], [3, 4, 5], [1, -4, 1]]
let matrixB = [[4, -1, 7], [1, 0, -3], [-2, 6, 3]]

// заповнюємо матрицю C значеннями 0
var matrixC = Array(repeating: Array(repeating: 0, count: 
matrixA[0].count), count: matrixA.count)

// перевіояємо матриці
if matrixA.count == matrixB.count && matrixA[0].count == matrixB[0].count {
    // виконуємо додавання
    for i in stride(from: 0, to: matrixA.count, by: 1){
       for j in stride(from: 0, to: matrixA[0].count, by: 1) {
        matrixC[i][j] = matrixA[i][j] + matrixB[i][j]
       }
    }
}

// вивід матриці
for row in matrixC {
    print(row)
}

Результати обчислень:

[5, 2, 11]
[4, 4, 2]
[-1, 2, 4]

Приклад не є складним, але показує зручність використання функції stride().

Параметри та значення

Cтисло розпишемо в таблиці, які значення і куди передавати:

Параметри

Значення

from

Початкове значення з якого стартуємо

to

Кінцеве значення, але невключно з ним

through

Кінцеве значення включно з ним

by

Крок з яким відбуватиметься ітерація

Підбиваємо підсумки

Отже, я поділився з вами цим файним способом більш зручніше і гнучкіше використовувати цикл for. Залишив посилання на офіційну документацію, якщо виникне бажання розібратися більше.

Джерела та корисні посилання

Якщо є якісь доповнення, то пишіть у коментарях😁💬

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Олексій Чумак
Олексій Чумак@oleksii_31

Просто трохи намагаюсь вчитися

42Прочитань
2Автори
3Читачі
На Друкарні з 15 квітня

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається