Swift Class with Single and Multiple Initializers

In Swift, a class or a struct can have multiple initializers which are used to create an instance of that particular type and set up its initial state. The code examples below show how to define a class with single or multiple initializers and how to create an instance of that class.

Single Initializer

class Person {
    var firstName: String
    var lastName: String
    
    init(firstName: String, lastName: String) {
        self.firstName = firstName
        self.lastName = lastName
    }
}

You can instantiate the above class and print Person’s first name like this:

let person = Person(firstName: "Sergey", lastName: "Kargopolov")
print(person.firstName)

Multiple Initializers

Let’s add a second initializer to the above Swift class which will accept person’s email address as well.

class Person {
    var firstName: String
    var lastName: String
    var email: String?
    
    init(firstName: String, lastName: String) {
        self.firstName = firstName
        self.lastName = lastName
    }
    
    init(firstName: String, lastName: String, email: String) {
        self.firstName = firstName
        self.lastName = lastName
        self.email = email
    }
}

To instantiate the above class and print out Person’s first name and email address you can write:

let person = Person(firstName: "Sergey", lastName: "Kargopolov", email: "[email protected]")
print(" First name \(person.firstName), email address: \(person.email ?? "") ")

 


Leave a Reply

Your email address will not be published. Required fields are marked *