Intern
Ma'lumot turlari nima va ular qanday?
sobes.tech AI
AIdan javob
Маълумот турлари мумкин бўлган қийматлар ва улар ustida амалга оширилиши мумкин бўлган операцияларни белгилайди. Swiftда улар Қиймат турлари ва Ҳил турлари бўлиб бўлинади.
Қиймат турлари:
- Қийматлар берилаётганда ёки функцияга ўтказилганда нусхаланади.
- Ҳар бир ўзгарувчи ёки мустаҳкамда ўзининг мустақил нусхаси сақланади.
- Бир нусхадаги ўзгаришлар бошқаларга таъсир қилмайди.
Қиймат турларига misollar:
- Тузилмалар (
struct) - Тоифалар (
enum) - Туплар (
tuple) - Асосий турлар:
Int,Double,Bool,String, массивлар (Array), луғатлар (Dictionary), тўплар (Set).
// Қиймат тури мисоли: struct
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2)
var p2 = p1 // p2, p1нинг нусхасини олади
p2.x = 10 // p2даги ўзгариш, p1га таъсир қилмайди
print("p1: \(p1)") // p1: Point(x: 1, y: 2)
print("p2: \(p2)") // p2: Point(x: 10, y: 2)
Ҳил турлари:
- Қийматлар нусхаланмайди. Алоҳида ўтказилганда,
- бир хил ёдгорликга ишора қилувчи ҳавола ўтказилади.
- Бир неча ўзгарувчи ёки мустаҳкам бир хил ёдгорликка ишора қилиши мумкин.
- Бир ҳаволадан ўтказилган ўзгаришлар, бошқа барча ҳаволарда кўринади.
Ҳил турларига misollar:
- Синфлар (
class) - Функциялар (
func) - Ёпиқлар (
closure)
// Ҳил тури misoli: class
class Circle {
var radius: Double
init(radius: Double) {
self.radius = radius
}
}
var c1 = Circle(radius: 5.0)
var c2 = c1 // c2, c1 билан бир хил ёдгорликка ишора қилади
c2.radius = 10.0 // c2даги ўзгариш, c1га таъсир қилади
print("c1 radius: \(c1.radius)") // c1 radius: 10.0
print("c2 radius: \(c2.radius)") // c2 radius: 10.0
Асосий турлар таблицаси:
| Категория | Тур(лар) | Қиймат/Ҳил тури | Тавсиф |
|---|---|---|---|
| Тўғри рақамлар | Int, UInt, Int8, UInt8 ва бошқалар |
Қиймат | Турли ўлчамда, имзо ёки имзосиз тўғри рақамлар |
| Ўтказмалар | Float, Double |
Қиймат | Бўлак қисми бўлган рақамлар |
| Мақлумотлар | Bool |
Қиймат | Логик қийматлар (true ёки false) |
| Сатрлар | String |
Қиймат | Белгилар тизмаси |
| Коллекциялар | Array, Dictionary, Set |
Қиймат | Тартибланган/тартибланмаган коллекциялар, бир хил турдаги элементлар |
| Тузилмалар | struct |
Қиймат | Фойдаланувчи томонидан белгиланган, боғланган қийматларни сақлайдиган турлар |
| Тоифалар | enum |
Қиймат | Бир гуруҳ боғланган қийматлар учун умумий турни белгилайди |
| Туплар | (value1, value2, ...) |
Қиймат | Бир неча қийматни бирга гуруҳлайди |
| Синфлар | class |
Ҳил | Фойдаланувчи томонидан белгиланган, мерос ва ҳавола ҳолатини қўллайдиган турлар |
| Функциялар | () -> Void, (Int) -> String ва бошқалар |
Ҳил | Ижро этилган код блоклари |
| Ёпиқлар | { (parameters) -> return type in code } |
Ҳил | Автоном код блоклари, уларни ўтказиш ва ишлатиш мумкин |
| Опционаллар | Type? (синтаксик шакл Optional<Type>) |
Қиймат | Type тури ёки унинг йўқлиги (nil) кўрсатилади |
Қиймат ва Ҳил турлари орасида танлов вазифага боғлиқ: Қиймат турлари кичик маълумотлар учун афзалдир ва тўғриликни таъминлайди, Ҳил турлари мураккаб объектлар учун мос, улар умумий ҳолат ва мерос талаб қилади.