- Published on
Swiftda Ranges
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Swiftda range (oralik) โ bu ikki son oraligโidagi qiymatlar ketma-ketligi. Masalan:
var numbers = 1...4
Bu yerda:
...โ range operatori1...4โ qiymatlar:1, 2, 3, 41โ pastki chegarasi (birinchi qiymat)4โ yuqori chegarasi (oxirgi qiymat)
Range turlari
Swiftda rangening uch turi mavjud:
- Yopiq range (Closed Range)
- Yarim ochiq range (Half-Open Range)
- Bir tomonlama range (One-Sided Range)
1. Yopiq Range (Closed Range)
Yopiq range pastki chegara va yuqori chegaraning ikkalasini ham oโz ichiga oladi.
U ... (3 nuqta) operatori bilan yaratiladi.
// 1...4 โ yopiq range
for numbers in 1...4 {
print(numbers)
}
Natija:
1
2
3
4
Bu yerda 1...4 yopiq range boโlgani uchun:
- 1 dan boshlanadi
- 4 bilan tugaydi
- Har ikki chegara ham kiradi
2. Yarim ochiq range (Half-Open Range)
Bu rangeda pastki chegara kiradi, ammo yuqori chegara kirmaydi.
..< operatori bilan yaratiladi.
for numbers in 1..<4 {
print(numbers)
}
Natija:
1
2
3
Bu yerda 1..<4 โ 4 kirmaydi.
3. Bir tomonlama Range (One-Sided Range)
Bir tomonlama range yaratishda ... yoki ..< ishlatiladi.
Bunda range cheksizlikka tomon davom etadi.
let range1 = ..<2
Bu yerda:
..<2โ 2 gacha boโlgan barcha qiymatlar (โโ dan 2 gacha)
Yana bir misol:
let range2 = 2...
Bu:
2...โ 2 dan boshlab +โ gacha davom etadi
Endi range ichida son borligini tekshirish:
// ..< operatori bilan yaratilgan bir tomonlama range
let range1 = ..<2
// -1 range ichidami?
print(range1.contains(-1))
// ... operatori bilan yaratilgan bir tomonlama range
let range2 = 2...
// 33 range ichidami?
print(range2.contains(33))
Natija:
true
true
Bu yerda contains() yordamida range ichida son borligi tekshirildi.
Bir tomonlama rangeda faqat bitta chegara beriladi.
Swiftda Range yordamida Array elementlarini olish
Range massiv elementlariga murojaat qilishda ham ishlatiladi.
let languages = ["Swift", "Java", "C"]
// massiv elementlariga murojaat
print(languages[0...2])
Natija:
["Swift", "Java", "C"]
Bu yerda 0...2 โ indexlar oraligโi boโlib, barcha elementlarni olmoqda.
Range haqida esda qoladigan jihatlar
- Pastki chegara yuqori chegaradan kichik boโlishi shart.
Notoโgโri:
3...1
Toโgโri:
1...3
- Chegaralar manfiy boโlishi mumkin.
Misollar:
// manfiy pastki chegara
-3...1
// har ikki chegara manfiy
-9...-2