Intern
რა არის მონაცემთა ტიპები და რა არსებობს მათ შორის?
sobes.tech AI
პასუხი AI-სგან
Маалымат түрлөрү мүмкүн болгон маанилердин топтомун жана алардын үстүндө иштөөнүн ыкмаларын аныктайт. Swiftте алар Value Types жана Reference Types деп бөлүнөт.
Value Types (маалымат түрлөрү):
- Арзиштер белгилөө же өткөрүп берүү учурунда көчүрүлөт.
- Ар бир өзгөрмө же константа өзүнүн көзкарандысыз көчөсүн сактайт.
- Бир көчөдө жасалган өзгөртүүлөр башка көчөлөргө таасир этпейт.
Мисалдар Value Types:
- Структуралар (
struct) - Энуми (
enum) - Тупл (
tuple) - Негизги түрлөрү:
Int,Double,Bool,String, массивдер (Array), сөздүктөр (Dictionary), топтомдор (Set).
// Мисал Value Type: 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)
Reference Types ( шилтемелүү түрлөр):
- Маалыматтар көчүрүлбөйт. Белгилөө же өткөрүп берүү учурунда
- бир эле экземплярга шилтеме берилет.
- Бир нече өзгөрмө же константа бир эле экземплярга шилтеме жасай алат.
- Бир шилтемедеги өзгөртүүлөр бардык шилтемелерде көрүнөт.
Мисалдар Reference Types:
- Класстар (
class) - Функциялар (
func) - Жабдыктар (
closure)
// Мисал Reference Type: class
class Circle {
var radius: Double
init(radius: Double) {
self.radius = radius
}
}
var c1 = Circle(radius: 5.0)
var c2 = c1 // c2 ошол эле экземплярга шилтеме
c2.radius = 10.0 // өзгөртүү c1ге таасир этет
print("c1 radius: \(c1.radius)") // c1 radius: 10.0
print("c2 radius: \(c2.radius)") // c2 radius: 10.0
Негизги түрлөрү боюнча таблица:
| Категория | Төрү(лөрү) | Value/Reference Type | Түшүндүрмө |
|---|---|---|---|
| Бүтүн сандар | Int, UInt, Int8, UInt8 жана башка |
Value | Ар кандай өлчөмдөрдө, белгилүү жана белгилүү эмес сандар |
| Уламдуу сандар | Float, Double |
Value | Дробдуу бөлүгү бар сандар |
| Логикалык | Bool |
Value | Логикалык маанилер (true же false) |
| Жолдар | String |
Value | Белгилердин тизмеси |
| Коллекциялар | Array, Dictionary, Set |
Value | Тартиптелген же тартиптелбеген коллекциялар |
| Структуралар | struct |
Value | Колдонуучу түзгөн түрлөр, байланышкан маанилерди сактайт |
| Энуми | enum |
Value | Топтогон маанилер үчүн жалпы түр аныктайт |
| Тупл | (value1, value2, ...) |
Value | Бир нече маанини бир топко топтоо |
| Класстар | class |
Reference | Колдонуучу түзгөн, мурас алууга жана шилтемелүү жүрүм-турумга ээ түрлөр |
| Функциялар | () -> Void, (Int) -> String жана башка |
Reference | Ишке ашырылуучу код блоктору |
| Жабдыктар | { (parameters) -> return type in code } |
Reference | Өзүнчө код блоктору, которулуп жана колдонулушу мүмкүн |
| Опционалдар | Type? (синтаксикалык шек Optional<Type> үчүн) |
Value | Нерсе Type маанини же жоктугун көрсөтөт (nil) |
Value жана Reference түрлөрүнүн тандоосу тапшырмага жараша болот: Value түрлөрү кичинекей маалыматтар жана агым коопсуздугун камсыз кылуу үчүн артыкчылыктуу, Reference түрлөрү — татаал объекттер үчүн, жалпы абал жана мурас алуу талап кылынат.