Sobes.tech
Junior

Value түрүндөгү объект түзгөндө өзгөрмө так эмне сактайт?

sobes.tech AI

AIден жооп

Swift-те баалуу түрү (структура, enumeration, tuple) түрүндө объект түзгөндө, өзгөрмө түздөн-түз ошол объекттин нусхасын эсинде сактайт. Мындай объектти белгилөө же параметр катары өткөрүү анын мазмунунун нусхасын түзөт.

Мисалдар:

struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 1, y: 2) // p1 өзгөрмөсү, маалыматтардын нускасын сактайт (x=1, y=2)
var p2 = p1              // p2, p1дин маалыматтарынын нускасын алат. Бул көз карандысыз нускалар.

p1.x = 10                // гана p1.x өзгөрөтүлөт
print(p2.x)              // 1 чыгат, анткени p2 өзгөргөн эмес

Референс түрү (класа) менен салыштырып:

Өзгөчөлүк Баалуу түрү (структура, enum) Референс түрү (класа)
Эмне сакталат Объекттин маалыматтарынын нускасы Эсинде объектке шилтеме
Белгилөө / өткөрүү Маалыматтардын нускасы Шилтеменин нускасы (ошол эле объектке көрсөтөт)
Өзгөртүү Тек гана учурдагы нускага таасир этет Шилтемелеген объектке таасир этет (башка өзгөрмөлөргө да таасир этиши мүмкүн, алар да ошол эле объектке шилтеме кылышы мүмкүн)