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 түрлөрү — татаал объекттер үчүн, жалпы абал жана мурас алуу талап кылынат.