Sobes.tech
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) кўрсатилади

Қиймат ва Ҳил турлари орасида танлов вазифага боғлиқ: Қиймат турлари кичик маълумотлар учун афзалдир ва тўғриликни таъминлайди, Ҳил турлари мураккаб объектлар учун мос, улар умумий ҳолат ва мерос талаб қилади.