티스토리 뷰
구조체
- 스위프트 대부분 타입은 구조체로 이루어져 있다.
- 구조체는 값(value) 타입이다.
- 타입이름은 대문자 카멜케이스를 사용하여 정의
구조체 문법
struct 이름 {
/* 구현부 */
}
구조체 프로퍼티 및 메서드 구현
struct Sample {
// 가변 프로퍼티(값 변경 가능)
var mutableProperty: Int = 100
// 불변 프로퍼티(값 변경 불가능)
let immutableProperty: Int = 100
// 타입 프로퍼티(static 키워드 사용 : 타입 자체가 사용하는 프로퍼티)
static var typeProperty: Int = 100
// 인스턴스 메서드(인스턴스가 사용하는 메서드)
func instanceMethod() {
print("instance method")
}
// 타입 메서드(static 키워드 사용 : 타입 자체가 사용하는 메서드)
static func typeMethod() {
print("type method")
}
}
구조체 사용
// 가변 인스턴스 생성
var mutable: Sample = Sample()
mutable.mutableProperty = 200
// 불변 프로퍼티는 인스턴스 생성 후 수정할 수 없습니다
// 컴파일 오류 발생
//mutable.immutableProperty = 200
// 불변 인스턴스
let immutable: Sample = Sample()
// 불변 인스턴스는 아무리 가변 프로퍼티라도
// 인스턴스 생성 후에 수정할 수 없습니다
// 컴파일 오류 발생
//immutable.mutableProperty = 200
//immutable.immutableProperty = 200
// 타입 프로퍼티 및 메서드
Sample.typeProperty = 300
Sample.typeMethod() // type method
// 인스턴스에서는 타입 프로퍼티나 타입 메서드를
// 사용할 수 없습니다
// 컴파일 오류 발생
//mutable.typeProperty = 400
//mutable.typeMethod()
'Swift 문법 정리 - iOS' 카테고리의 다른 글
[Swift] 클래스 VS 구조체 / 열거형 (0) | 2021.08.02 |
---|---|
[Swift] 인스턴스 / 프로퍼티 / 메서드 (1) | 2021.08.02 |
[Swift] 열거형 (enum) (0) | 2021.08.01 |
[Swift] 클래스 (Class) (0) | 2021.08.01 |
[Swift] 스위프트 기초 문법 (0) | 2021.07.27 |
댓글