Junior — Middle
How is automatic object initialization in Swift implemented and how does it differ from structures?
sobes.tech AI
Answer from AI
In Swift, automatic initialization of objects within classes occurs through initializers (init). Classes require all properties to be initialized before the object’s initialization completes.
Differences from structures:
- Classes can have multiple initializers, including convenience and designated initializers. They support inheritance and initializer overriding.
- Structures automatically get an initializer with parameters for all their properties if not explicitly defined. They do not support inheritance.
Example of a class with an initializer:
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let person = Person(name: "Ivan", age: 30)
For structures, you can omit the init if all properties are initialized:
struct Point {
var x: Double
var y: Double
}
let point = Point(x: 10, y: 20) // automatically generated initializer