반응형
안녕하세요 공부하는 개발자 입니다.
오늘의 포스팅은 생성자 입니다.
⚙️Initializer란
Initializer은 우리나라 말로 생성자란 뜻으로 Swift에서는 구조체나 클래스의 속성을 초기화시키는것을 생성자라 합니다.
⚙️ 문법 구분
1
2
3
|
init(Parameter){
initialization
}
|
cs |
위와 같이 구조체나 생성자에 정의해두면 되지만 defualt init의 경우에는 컴파일러가 자동으로 생성해 준다.
1
2
3
4
5
6
7
8
9
|
class Postion{
var x = 0.0
var y: Double
var z: Double? //optional로 초기화 시 자동으로 nil로 초기화
init(){
y = 0.0
}
}
|
cs |
모든 속성을 초기화 해주어야하지만 z의 경우에는 default로 nil의 값, x의 경우에는 정의가 되어있지만
y의 경우에는 값을 따로 저장해주지 않았기 때문에 생성자를 따로 정의 해주어야 한다.
⚙️convenience Initializer 간편생성자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Postion{
var x: Double
var y: Double
init(x:Double, y:Double){
self.x = x
self.y = y
}
convenience init(x: Double){
self.init(x: x, y: 0.0)
}
}
let s = Postion.init(x: 1.2)
s.x //1.2
s.y //0
|
cs |
간편생성자의 경우에는 같은 클래스에있는 생성자를 호출할 때 쓰이는 문법이다.
이와 별개로 designated Initializer 지정생성자는 class의 모든 속성을 초기화하는것을 뜻한다.
반응형
'Ios > Swift' 카테고리의 다른 글
[Swift] Initializer_3 스위프트 생성자 3 (0) | 2022.08.01 |
---|---|
[Swift] Initializers_2 스위프트 생성자 2 (0) | 2022.07.31 |
[Swift] Overloading 스위프트 오버로딩 (0) | 2022.07.18 |
[Swift] Inheritance 스위프트 상속 (0) | 2022.07.16 |
[Swift] Subscripts 서브스크립트 (0) | 2022.07.15 |