Sobes.tech
Junior — Middle

Таврии фарқият байни рӯйхатҳо бо арзишҳои доимӣ ва рӯйхатҳое, ки ба пайвандҳо ё арзишҳои миёнагӣ истифода мебаранд?

sobes.tech AI

Ҷавоб аз AI

Дар iOS, enumeration (enum) асосан икки асосий турга бўлинади:

  1. Маънолар билан белгиланган enumerationлар (Raw Value Enums) — ҳар бир элементга аниқ бир белгиланган қиймат (масалан, Int, String) берилади. Бу қийматлар компиляция вақтида маълум бўлиб, маълумотларни сақлаш ва ўтказишда қулайлик учун қўлланилади.

Масалан:

enum Direction: Int {
    case north = 1
    case south = 2
    case east = 3
    case west = 4
}
  1. Ассоциатсияланган қийматлар билан enumerationлар (Associated Values) — ҳар бир ҳолат қўшимча турдаги маълумотларни сақлай олади, улар инстанция яратишда белгиланади. Бу мураккаб ва турли хил маълумотларни сақлаш имконини беради.

Масалан:

enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}

Фарқлар:

  • Белгиланган қийматлар — оддий, статик, идентификация учун қўлланилади.
  • Ассоциатсияланган қийматлар — динамик, ҳолат ичида қўшимча маълумотларни сақлашга имкон беради.

Шу тариқа, белгиланган қийматлар билан enumerationлар оддий константлар тўплами учун қулай, ассоциатсияланган қийматлар эса мураккаброқ маълумот тузилмалари учун мос келади.