Junior
Qaysi qiymat turlari mavjud?
sobes.tech AI
AIdan javob
Swift'dagi qiymat turlari — bu turlar bo‘lib, ularning nusxalari tayinlash yoki funktsiyaga uzatishda ko‘paytiriladi. Har bir mustaqil nusxa o‘z saqlash joyiga ega.
Misollar:
- Structs
- Enums
- Tuples
- Integer, Float, Double, Bool, String, Array, Dictionary, Set
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2)
var p2 = p1 // Qiymat nusxasi
p2.x = 10 // Nusxani o‘zgartiryapmiz, p1 o‘zgarmaydi
print(p1.x) // Chiqish: 1
print(p2.x) // Chiqish: 10
Afzalliklar:
- Oldindan bilish mumkin bo‘lgan xulq-atvor, chunki kodning bir qismidagi o‘zgarishlar boshqa nusxalarni ta'sir qilmaydi.
- Mahalliy qiymatlar bilan ishlashda standart xavfsizlik.
Kamchiliklar:
- Katta tuzilmalar uchun nusxa olish xarajatli bo‘lishi mumkin.
Refleks turlari bilan taqqoslaganda:
| Xususiyat | Qiymat turi | Refleks turi |
|---|---|---|
| Tayinlash | Qiymat nusxasi | Havola nusxasi |
| O‘zgartirish | Nusxani o‘zgartiradi | Asl ob'ektni o‘zgartiradi |
| Misol | struct, enum, tuple, asosiy turlar | class, closure |