Published on

Swiftda Enum

Authors

Bilimingizni sinab ko'ring!

20 ta savol Β· ~20 daqiqa

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 nomi
  • spring/summer/autumn/winter β€” enum ichida belgilangan qiymatlar

Enum qiymatlari enum case (holatlari) deb ham ataladi. Va enum ichida qiymatlarni e'lon qilish uchun case kalit 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:

Swift
Enum yaratish
// 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)

Yuqoridagi misolda:

  • Season β€” 4 ta qiymatga ega enum: spring, summer, autumn, winter
  • currentSeason β€” enum turli o'zgaruvchi
  • currentSeason = Season.summer β€” currentSeason ga 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,

Swift
Enum va Switch
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.") }

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:

Swift
CaseIterable
// 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) }

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:

Swift
Raw Value
enum Size : Int { case small = 10 case medium = 12 case large = 14 } // small casening raw valuega murojaat let result = Size.small.rawValue print(result)

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:

Swift
Associated Value
enum Laptop { // string qiymatni biriktirish case name(String) // butun son qiymatni biriktirish case price(Int) } // name ga string qiymat uzatish let brand = Laptop.name("Razer") print(brand) // price ga butun son qiymat uzatish let offer = Laptop.price(1599) print(offer)

Yuqoridagi misolda associated value:

  • Razer β€” name casega tayinlandi
  • 1599 β€” price casega tayinlandi

Associated values haqida ko'proq ma'lumot olish uchun Swiftda enum Associated Value mavzusiga tashrif buyuring.

Buy mea coffee