Swift - 이니셜라이저

CodeCat·2024년 9월 11일
post-thumbnail

안녕하세요 !

이번에는 이니셜라이절를 주제로 포스팅해보려합니다

이니셜라이저란?

이니셜라이저는 새로운 인스턴스를 생성하고 초기화하는 메서드입니다

class Person {
    let name: String
    
    init(name: String) {
        self.name = name
    }
}

let person = Person(name: "Alice")

이 예제에서 init(name:)은 Person 클래스의 이니셜라이저입니다.

기본 이니셜라이저

기본 이니셜라이저는 모든 프로퍼티가 기본값을 가지고 있을 때 자동으로 제공되는 이니셜라이저

struct Point {
    var x = 0.0
    var y = 0.0
}

let point = Point() // 기본 이니셜라이저 사용

init(name:)은 Person 클래스의 이니셜라이저

멤버와이즈 이니셜라이저

멤버와이즈 이니셜라이저는 구조체에서만 자동으로 제공되는 이니셜라이저

struct Size {
    var width: Double
    var height: Double
}

let size = Size(width: 10.0, height: 20.0) // 멤버와이즈 이니셜라이저 사용

사용자 정의 이니셜라이저

복잡한 초기화 로직이 필요할 때 사용됨

class Temperature {
    var celsius: Double
    
    init(fahrenheit: Double) {
        celsius = (fahrenheit - 32) / 1.8
    }
}

let temp = Temperature(fahrenheit: 98.6)

이니셜라이저 위임

구조체와 열거형에서는 다른 이니셜라이저를 호출하여 초기화 작업을 위임 가능

struct Rect {
    var origin: Point
    var size: Size
    
    init() {
        self.init(origin: Point(), size: Size(width: 0, height: 0))
    }
    
    init(origin: Point, size: Size) {
        self.origin = origin
        self.size = size
    }
}

여기서 첫 번째 이니셜라이저는 두 번째 이니셜라이저에게 초기화를 위임합니다

이니셜라이저는 Swift에서 객체 생성과 초기화를 담당하는 중요한 요소이며 기본 이니셜라이저와 멤버와이즈 이니셜라이저는 간단한 초기화에 유용합니다

이상으로 포스팅 마무리 하겠습니다.

.
.
.

감사합니다.

profile
코드와 고양이의 만남

0개의 댓글