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.