Sobes.tech
Junior

Бо кадом намудҳои додаҳо метавон дар Swift истинодҳоро истифода бурд?

sobes.tech AI

Ҷавоб аз AI

Дар Swift, ишораҳо (ба суроғаҳо) дар ҳолатҳои зерин истифода мешаванд:

  1. Классҳо (Classes): Нусхаҳои классҳо навъҳои ишора мебошанд. Вақте ки нусхаи класс ба тағйирёбанда ё константа таъин карда мешавад, ишора ба объект нусхабардорӣ мешавад, на худи объект.
  2. Қатраҳо (Closures): Гирифтани тағйирёбандаҳо дар қатраҳо бо ишора сурат мегирад.
  3. Актёрҳо (Actors): Нусхаҳои актёрҳо низ навъҳои ишора мебошанд.
  4. Баъзе навъҳои системавӣ: Масалан, AnyObject, NSObject ва навъҳои маҷмӯи Core Foundation (масалан, CFString).
  5. Параметрҳои воридотӣ/баромадӣ (inout): Имкон медиҳанд, ки тағйирёбандаҳоро ба функсия бо ишора гузаронанд, то ки функсия метавонад арзиши онҳоро тағйир диҳад.
// Мисол бо класс
class MyClass {
    var value = 10
}

let instance1 = MyClass()
let instance2 = instance1 // instance2 ба ҳамон объект ишора мекунад
instance2.value = 20
print(instance1.value) // 20 мебарорад

// Мисол бо inout
func modifyValue(value: inout Int) {
    value = value * 2
}

var myInt = 5
modifyValue(value: &myInt)
print(myInt) // 10 мебарорад

Сохторҳо, enumerationҳо ва tupleҳо навъҳои арзишӣ мебошанд, ва дар вақти таъин ё гузаронидан, мазмунашон нусхабардорӣ мешавад, на ишора.