English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете о Range, типах и примерах использования в Swift.
Range (диапазон) — это интервал значений. Пример простого диапазона — 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, так как числа от 0 до 9 являются последовательными.
Мы можем быстро создать интервал с помощью двух описанных ниже операторов диапазона:
Он включает все значения интервала (от lowerbound до upperBound). Его можно声明 с помощью оператора … (три точки).
Например: 1...3 определяет диапазон значений, включающий 1, 2, 3
Он включает все значения интервала (от lowerbound до upperBound), но не включает последний (upperBound) элемент. Его можно声明 с помощью оператора ..<.
Например: 1..<3 определяет диапазон значений, включающий 1 и 2
Диапазон (range) — это интервал значений. Пример простого диапазона — 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, так как числа от 0 до 9 являются последовательными.
// 1...3 определяет диапазон значений, включающий 1, 2 и 3 for value in 1...3 { print(value) {}
При выполнении программы выводом будет:
1 2 3
Пример выше создает диапазон чисел от 1 до 3 (1...3). Мы используем цикл for-in, чтобы посмотреть, какие значения включены в диапазон. Для получения更多信息 о цикле for-in посетитеЦикл for-in в Swift.
Используя цикл for-in, мы можем увидеть, что замкнутый интервал включает все значения в данном интервале, включая нижний предел (1) и верхний предел (3).
Интервал, созданный с помощью оператора полузакрытого интервала, называется полузакрытым интервалом. Он включает все значения от нижнего предела до верхнего предела, ноНе включаетсяВерхний предел.
// 1..<3 определяет диапазон значений, включая 1 и 2 for value in 1..<3 { print(value) {}
При выполнении программы выводом будет:
1 2
В примере выше мы используем цикл for-in, чтобы посмотреть, как работает полузакрытый интервал.
Не нужно печатаить все значения, чтобыclearly видеть, что использование оператора полузакрытого интервала печатает только 1 и 2, и не включает верхний предел (т.е. 3).
Односторонний интервал - это интервал, который как можно более连续 в одном направлении. Его можно создать с помощью оператора полузакрытого и замкнутого интервала, но оператор может иметь значение только с одной стороны.
let range = ..<2 print(range.contains(-1)) print(range.contains(2))
При выполнении программы выводом будет:
true false
Пример выше использует оператор полузакрытого интервала для создания одностороннего интервала, который включает все числа меньше 2.
Чтобы проверить наши результаты, мы используем метод contains. Если элемент находится в интервале, метод contains возвращает true,否则 false.
range.contains(-1) проверяет, находится ли -1 в интервале. Так как верхний предел одностороннего интервала равен 2 и -1 < 2, он находится в интервале, и команда print(range.contains(-1)) выводит true на экран.
Но, поскольку используется оператор полузакрытого интервала, верхний предел (2) не включается в интервал. Поэтому range.contains(2) возвращает false.
let range = 2... print(range.contains(100)) print(range.contains(1))
При выполнении программы выводом будет:
true false
Пример выше использует оператор замкнутого интервала для создания одностороннего интервала, который включает все числа от 2 до большего, чем 2.
range.contains(100) проверяет, находится ли 100 в диапазоне. Поскольку это односторонний диапазон, и 100 больше 2, он находится в диапазоне и выводится на экран true.
Но у него есть значение lowerBound (2), поэтому range.contains(1) возвращает false.
Начало интервала должно быть меньше или равно концу интервала. В нашем примере (lowerBound...upperBound), значение lowerBound должно быть меньше значения upperBound. Но это могут быть отрицательные значения.
Например:
3...1 // Ошибка: не может быть использован upperBound < lowerBound для создания Range -3...1 // Это является действительным диапазоном. Lowerbound/Upperbound могут содержать отрицательные значения.
Мы можем использовать цикл for-in для遍ения всего диапазона (не включая односторонний диапазон).
Мы также можем использовать операторы диапазона для доступаМассивовЭлементы.