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. Залишив посилання на офіційну документацію, якщо виникне бажання розібратися більше.
Джерела та корисні посилання
Джерела | Посилання |
---|---|
stride(from:to:by:) | https://developer.apple.com/documentation/swift/stride(from:to:by:) |
stride(from:through:by:) | https://developer.apple.com/documentation/swift/stride(from:through:by:) |
Якщо є якісь доповнення, то пишіть у коментарях😁💬