Sobes.tech
Junior — Middle

Môžeš uviesť príklad, kedy sa objekt triedy vytvára na zásobníku namiesto na halde?

sobes.tech AI

Odpoveď od AI

V iOS sa objekti triedí zvyčajne vytvárajú na halde, pretože triedy sú referenčné typy. Ak však používate štruktúry (struct), ktoré sú hodnotové typy, vytvárajú sa na zásobníku.

Príklad:

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

func createPoint() {
    let p = Point(x: 10, y: 20) // vytvorené na zásobníku
    print(p)
}

Tu je Point štruktúra a premenná p je vytvorená na zásobníku. Pre triedy, napríklad:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

func createPerson() {
    let person = Person(name: "John") // objekt na halde, odkaz naň na zásobníku
    print(person.name)
}

Takže, objekty tried sú vytvárané na halde, zatiaľ čo štruktúry na zásobníku.