초기화는 인스턴스의 클래스, 구조체 또는 열거형을 사용하기 위해 준비하는 단계를 의미한다. 이 단계에서는 인스턴스에 저장된 프로퍼티에 초기값을 설정해주고, 새로운 인스턴스가 사용할 준비가 되기 전 다른 설정이나 초기화를 수행하는 것을 포함한다.
init() {
//초기화 구문 작성
}
struct Farenheit {
var temperature : Double
init() {
temperature = 32.0
//값이 정의되지 않은 프로퍼티의 초기값을 설정해준다.
}
}
var f = Farenheight()
//다음과 같이 구조체를 정의하면 초기값으로서 32를 가지는 프로퍼티와 함께 인스턴스가 생성된다.
struct Farenheit {
var temperature = 32.0
`
//다음과 같이 초기화를 해줄 시 별도 초기화 구문 생력이 가능하다.
struct Celsius {
var temperature : Double
init(temp : Int) {
temperature = temp
}
init(kelvin: Int) {
temperature = kelvin - 273.15
}
let cel = Celsius(temp : 21)
let cel1 = Celsius(kelvin : 290)
// 다음과 같이 초기화 파라미터를 통해서 프로퍼티의 초기화가 가능하다.
//초기화 시 원하는 초기화를 선택해서 적용이 가능하다.
struct Carrier {
var carrier : Int
init(from number : Int) {
carrier = number
}
init(_ name : Int) {
carrier = name
}
let carrier = Carrier(from : 100)
let carrier = Carrier(100)
//다음과 같이 인자 라벨을 사용하여 초기화가 가능하다.
class SurveyQuestion {
var text : String
var response : String?
init(text : String) {
self.text = text
}
func ask() {
print(text)
}
}
let cheeseQuestion = SurveyQuestion(text : "Do you like cheese?")
//다음과 같이 초기화 가능하며, 비어있는 것이 가능하므로 초기에 nil부여가 가능하다.
class SurveyQuestion {
let text : String
var response : String?
init(text : String) {
self.text = text
}
func ask() {
print(text)
}
}
let beetsQuestion = SurveyQuestiont(text : "How about beets?")
beetsQuestion.ask()
//비츠는 어때? 를 출력한다
beetsQuestion.response = "I also like beets"