Sobes.tech
Junior — Middle

Термини Mutating дар контексти барномасозӣ чӣ маъно дорад?

sobes.tech AI

Ҷавоб аз AI

Дар программабарӣ, мафҳуми "mutating" (тағйирёбанда) ба амалҳо ё усулҳое ишора мекунад, ки пас аз даъват онҳо ҳолати объектро тағйир медиҳанд. Дар контексти iOS ва Swift, усулҳои mutating онҳое мебошанд, ки метавонанд хосиятҳои сохтор ё enumeration-ро тағйир диҳанд.

Дар Swift, сохторҳо ва enumeration-ҳо ба таври пешфарз намудҳои арзишӣ (value types) мебошанд, бинобар ин, барои он ки усул тавонад хосиятҳои намунаи онро тағйир диҳад, бояд бо калимаи калидии mutating ишора карда шавад.

Масалан:

struct Point {
    var x: Int
    var y: Int

    mutating func moveBy(dx: Int, dy: Int) {
        x += dx
        y += dy
    }
}

var p = Point(x: 0, y: 0)
p.moveBy(dx: 5, dy: 3)  // ҳоло p.x == 5, p.y == 3

Бинобар ин, усулҳои mutating имкон медиҳанд, ки хосиятҳои намудҳои арзиширо тағйир додан, ки бидуни ин калимаи калидӣ ғайриимкон буд.