Sobes.tech
Junior — Middle

Kas saaksid anda näite, millal klassi objekt luuakse virna asemel virnas?

sobes.tech AI

Vastus AI-lt

iOS-is, klassiobjektid luuakse tavaliselt virnas, kuna klassid on viidetüübid. Kuid kui kasutate struktuure (struct), mis on väärtustüübid, luuakse need virnas.

Näide:

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

func createPoint() {
    let p = Point(x: 10, y: 20) // luuakse virnas
    print(p)
}

Siin on Point struktuur ja muutuja p luuakse virnas. Klasside puhul näiteks:

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

func createPerson() {
    let person = Person(name: "John") // objekt virnas, viide sellele virnas
    print(person.name)
}

Seega, klassiobjektid luuakse virnas, struktuurid aga virnas.