struct 이름 {
구현부
}
프로퍼티 및 메서드
- 메서드는 구조체 안에 들어가 있는 함수
- 어떤 타입 안에 들어가 있는 변수를 프로퍼티라고 보면 됨
- 타입 안에 들어가 있는 함수를 메서드라고 보면 됨
struct Sample {
var mutableProperty: Int = 100 // 값을 변경할 수 있는 가변 프로퍼티
let immutableProperty: Int = 100 // 값을 변경할 수 없는 불변 프로퍼티
static var typeProperty: Int = 100 // 타입 프로퍼티
// 인스턴스 메서드
func instanceMethod() {
print("instance method")
}
// 타입 메서드
static func typeMethod() {
print("type method")
}
구조체 사용
1. 가변 인스턴스
var mutable: Sample = Sample()
2. 불변 인스턴스
let immutable: Sample = Sample()
3. 타입 프로퍼티 및 메서드
Sample.typeProperty = 300
Sample.typeMethod() // type method
* 학생 구조체
import Foundation
struct Student {
var name: String = "unknown"
var 'class' = String = "Swift"
// 타입 메서드
static func selfIntroduce() {
print("학생 타입 입니다")
}
// 인스턴스 메서드
func selfIntroduce() {
print("저는 \(self.class)반 \(name)입니다")
}
}
Student.selfIntroduce() // 학생 타입 입니다
var khon: Student = Student()
khon.name = "khon"
khon.class = "스위프트"
khon.selfIntroduce() // 저는 스위프트반 khon입니다
let khon3: Student = Student()
// 불변 인스턴스이므로 프로퍼티 값 변경 불가
// 컴파일 오류 발생
// khon3.name = "khon3"
khon3.selfIntroduce() // 저는 Swift반 unknown입니다
'Swift > 문법' 카테고리의 다른 글
열거형(enum) (0) | 2021.01.27 |
---|---|
클래스 (0) | 2021.01.27 |
옵셔널 추출(Optional Unwrapping) (0) | 2021.01.27 |
옵셔널(Optional) (0) | 2021.01.27 |
반복문 (0) | 2021.01.27 |