[swift] 옵셔널 타입의 메서드 사용하기

이번에는 Swift에서 옵셔널 타입의 메서드를 어떻게 사용하는지에 대해 알아보겠습니다.

옵셔널 타입은 값이 있을 수도 있고 없을 수도 있는 변수를 나타내는 Swift의 특징적인 기능입니다. 메서드도 마찬가지로 값이 있을 수도 있고 없을 수도 있는 경우가 있습니다.

옵셔널 타입의 메서드를 사용하기 위해서는 옵셔널 체이닝(Optional Chaining)을 활용해야 합니다. 옵셔널 체이닝은 옵셔널 값에 접근하고 메서드를 호출하는 과정에서 값이 없을 경우에도 안전하게 처리할 수 있도록 도와줍니다.

다음은 옵셔널 타입의 메서드를 사용하는 예시 코드입니다.

class Person {
    var name: String?
    
    func greet() {
        if let personName = name {
            print("안녕하세요, \(personName)씨!")
        } else {
            print("이름을 알 수 없습니다.")
        }
    }
}

var person: Person? = Person()
person?.greet() // 출력: 이름을 알 수 없습니다.

person?.name = "John Doe"
person?.greet() // 출력: 안녕하세요, John Doe씨!

위 예시 코드에서 Person 클래스는 name이라는 옵셔널 타입의 속성과 greet()라는 메서드를 가지고 있습니다. greet() 메서드 내에서는 name 속성의 값이 있을 경우 해당 값으로 인사말을 출력하고, 값이 없을 경우에는 “이름을 알 수 없습니다.”라는 메시지를 출력합니다.

옵셔널 체이닝을 이용해 person?.greet()와 같이 호출하면, personnil인 경우에는 메서드 호출이 무시되고 아무런 동작도 수행하지 않습니다. 그렇지 않은 경우에는 greet() 메서드가 실행되어 결과를 출력합니다.

또한, person?.name = "John Doe"와 같이 속성에 값을 할당할 때에도 옵셔널 체이닝을 사용할 수 있습니다. 만약 personnil인 경우에는 속성에 값을 할당하지 않고 무시됩니다.

옵셔널 타입의 메서드를 사용하면서 옵셔널 체이닝을 활용하면, 값이 있는지 없는지 유연하게 처리할 수 있습니다. 이를 통해 안전하고 간편하게 옵셔널 값에 접근하고 메서드를 호출할 수 있습니다.


참고자료