- Published on
Swiftda Enum
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Swiftda enum (enumeration ning qisqartmasi) β bu foydalanuvchi tomonidan yaratilgan ma'lumot turi bo'lib, o'zaro bog'liq qiymatlarning sobit to'plamiga ega.
Enum yaratish uchun enum kalit so'zidan foydalanamiz. Masalan,
enum Season {
case spring, summer, autumn, winter
}
Bu yerda:
Seasonβ enumning nomispring/summer/autumn/winterβ enum ichida belgilangan qiymatlar
Enum qiymatlari enum case (holatlari) deb ham ataladi. Va enum ichida qiymatlarni e'lon qilish uchun
casekalit so'zidan foydalanamiz.
Enum o'zgaruvchilarini yaratish
Enum ma'lumot turi bo'lgani uchun enum turli o'zgaruvchilar yaratishimiz mumkin. Masalan,
var currentSeason: Season
Bu yerda currentSeason β Season turli o'zgaruvchi. U faqat enum ichida mavjud qiymatlarni (spring, summer, autumn, winter) saqlashi mumkin.
Enum o'zgaruvchilariga qiymat berish
Enum o'zgaruvchisiga qiymat berish uchun enum nomidan va . belgisidan foydalanamiz. Masalan,
// currentSeason o'zgaruvchisiga summer qiymatini berish
var currentSeason = Season.summer
Bu yerda currentSeason enum o'zgaruvchisiga summer qiymatini tayinladik.
Misol:
// enum e'lon qilish
enum Season {
// enum qiymatlarini e'lon qilish
case spring, summer, autumn, winter
}
// enum o'zgaruvchisi yaratish
var currentSeason: Season
// enum o'zgaruvchisiga qiymat berish
currentSeason = Season.summer
print("Joriy mavsum:", currentSeason)
Natija:
Joriy mavsum: summer
Yuqoridagi misolda:
Seasonβ 4 ta qiymatga ega enum:spring,summer,autumn,wintercurrentSeasonβ enum turli o'zgaruvchicurrentSeason = Season.summerβcurrentSeasonga enum qiymatini berish
O'zgaruvchilarga o'xshab, enum o'zgaruvchilarini yaratish va qiymat berishni bir qatorda amalga oshirishimiz mumkin. Masalan,
var lastSeason = Season.spring
Enum va Switch operatori
Swiftda enumni switch operatori bilan birga ishlatishimiz mumkin. Masalan,
enum PizzaSize {
case small, medium, large
}
var size = PizzaSize.medium
switch(size) {
case .small:
print("Men kichik o'lchamli pitsa buyurtma qildim.")
case .medium:
print("Men o'rta o'lchamli pitsa buyurtma qildim.")
case .large:
print("Men katta o'lchamli pitsa buyurtma qildim.")
}
Natija:
Men o'rta o'lchamli pitsa buyurtma qildim.
Yuqoridagi misolda small, medium, large qiymatlarga ega PizzaSize nomli enum yaratdik. Quyidagi qatorga e'tibor bering:
var size = PizzaSize.medium
Bu yerda size enum o'zgaruvchisiga medium qiymatini tayinlayapmiz.
Biz size enum o'zgaruvchisini switch operatori ichida ishlatdik. Va qiymat har bir case operatorining qiymati bilan taqqoslanadi.
Qiymat case .medium ga mos kelgani uchun case ichidagi operator bajariladi.
Enum Caselarini aylanish
Swiftda enumni aylanish uchun CaseIterable protocolidan foydalanamiz. Masalan,
enum Season: CaseIterable {
...
}
Endi enumning har bir caseni aylanish uchun allCases propertydan foydalanishimiz mumkin.
for currentSeason in Season.allCases {
...
}
Misol:
// Season ni CaseIterable ga moslashtirish
enum Season: CaseIterable {
case spring, summer, autumn, winter
}
// barcha caslarni aylanish uchun for sikli
for currentSeason in Season.allCases {
print(currentSeason)
}
Natija:
spring
summer
autumn
winter
Yuqoridagi misolda Season enumini CaseIterable protocoli bilan moslashtirdik.
Keyin enumning har bir caseni aylanish uchun allCases propertyni for sikli bilan ishlatdik.
Enum va rawValue
Swiftda har bir enum casega qiymat berishimiz ham mumkin. Masalan,
enum Size : Int {
case small = 10
case medium = 12
...
}
Bu yerda small va medium enum caslariga mos ravishda 10 va 12 qiymatlarini tayinladik. Bu qiymatlar raw value (xom qiymat) deyiladi.
E'tibor bering, enum nomi bilan Int dan foydalandik, bu enum caslar faqat butun sonli raw valuelarni o'z ichiga olishi mumkinligini bildiradi.
Enum Raw Valuega murojaat
Enumning raw valuega murojaat qilish uchun rawValue propertydan foydalanamiz. Masalan,
// raw valuega murojaat
Size.small.rawValue
Bu yerda small casening qiymatiga murojaat qildik.
Misol:
enum Size : Int {
case small = 10
case medium = 12
case large = 14
}
// small casening raw valuega murojaat
var result = Size.small.rawValue
print(result)
Natija:
10
Yuqoridagi misolda Int turli raw valuega ega Size nomli enum yaratdik.
Bu yerda rawValue propertysi yordamida small casening qiymatiga murojaat qildik.
Raw valuelar string, belgilar, butun sonlar yoki suzuvchi nuqtali sonlar turida bo'lishi mumkin.
Enum Associated values
Swiftda enum casega qo'shimcha ma'lumot biriktirishimiz ham mumkin. Masalan,
enum Laptop {
// associated value
case name(String)
...
}
Bu yerda name case uchun String turli qiymat biriktira olamiz.
Endi associated valueni casega tayinlashimiz mumkin.
Laptop.name("Razer")
Bu yerda Razer β name casening associated valuesi.
Misol:
enum Laptop {
// string qiymatni biriktirish
case name(String)
// butun son qiymatni biriktirish
case price(Int)
}
// name ga string qiymat uzatish
var brand = Laptop.name("Razer")
print(brand)
// price ga butun son qiymat uzatish
var offer = Laptop.price(1599)
print(offer)
Natija:
name("Razer")
price(1599)
Yuqoridagi misolda associated value:
Razerβnamecasega tayinlandi1599βpricecasega tayinlandi
Associated values haqida ko'proq ma'lumot olish uchun Swiftda enum Associated Value mavzusiga tashrif buyuring.