오늘은 스위프트의 구조체에 대해서 알아보겠습니다.
struct 이름 {
프로퍼티
메서드
}
위와 같은 형태로 선언할 수 있습니다.
예를 들면 고양이 구조체는 아래와 같이 선언할 수 있습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
init (nameEntred: String) { | |
name = nameEntred | |
age = 1 | |
} |
구조체는 자동으로 생성된 이니셜라이저를 통해 생성할 수 있습니다.
var yaong: Cat = Cat(name: “yaong”, age: 5)
또는 아래와 같이 직접 이니셜라이저 메서드를 선언해줄 수 있습니다.
직접 이니셜라이저 메서드를 선언해주면 기본으로 생성된 이니셜라이저는 사용하실 수 없습니다.
위에서 인스턴스를 만들어주는 소스는 직접 만든 이니셜라이저를 따르지 않기 때문에 오류가 발생합니다.
직접 만든 이니셜라이저 메서드를 따라서 아래와 같이 인스턴스를 만드는 부분을 변경하였습니다.
var yaong: Cat = Cat(nameEntred: “yaong”)
프로퍼티를 선언할 때 var로 선언해 가변 프로퍼티이면 아래와 같이 값을 변경하실 수 있습니다.
yaong.age = 2
lat으로 선언한 name 불변 프로퍼티는 변경할 수 없습니다.
또한 인스턴스를 만들 때 let 으로 선언한 불변 인스턴스라면 가변 프로퍼티라도 변경할 수 없습니다.
이상 기본적인 구조체의 구조에 대해서 알아봤습니다.