Site icon CodeWithSwift

Initializer

An initializer is a special method that prepares an instance of a class, structure, or enumeration for use. Initializers set up the initial state of an object by assigning values to its properties and performing any required setup.

Types of Initializers

1. Designated Initializer
2. Convenience Initializer
3. Failable Initializer
4. Required Initializer
5. Default Initializer

1.Designated Initializer

struct Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

2.Convenience Initializer

Convenience initializers are used to simplify initialization by calling designated initializers

class Rectangle {
    var width: Double
    var height: Double

    init(width: Double, height: Double) {
        self.width = width
        self.height = height
    }

    convenience init(side: Double) {
        self.init(width: side, height: side)
    }



3.Failable Initializer

Use failable initializers when initialization might fail.

struct Temperature {
    var celsius: Double

    init?(celsius: Double) {
        if celsius < -273.15 {
            return nil // Initialization fails if below absolute zero
        }
        self.celsius = celsius
    }
}

if let temp = Temperature(celsius: -300) {
    print("Temperature: \(temp.celsius)°C")
} else {
    print("Invalid temperature.") 
}

 // Output: Invalid temperature.

4.Required Initializer

class Animal {
    var name: String

    required init(name: String) {
        self.name = name
    }
}

class Dog: Animal {
    required init(name: String) {
        super.init(name: name)
    }
}

let dog = Dog(name: "Buddy")
print(dog.name)  

// Output: Buddy
Exit mobile version