프로퍼티
- 저장 프로퍼티(stored property)
- 연산 프로퍼티(computed property)
- 인스턴스 프로퍼티(instance property)
- 타입 프로퍼티(type property)
// 프로퍼티는 구조체, 클래스, 열거형 내부에 구현할 수 있다.
// 다만 열거형 내부에는 연산 프로퍼티만 구현할 수 있다.
// 연산 프로퍼티는 var 로만 선언할 수 있다.
struct Student {
// 인스턴트 저장 프로퍼티
var name: String = ""
var `class`: String = "Swift"
var koreanAge: Int = 0
// 인스턴스 연산 프로퍼티
var westernAge: Int {
get {
return koreanAge - 1
}
set(inputValue) {
koreanAge = inputValue + 1
}
/// 매개변수 생략하고 newValue 로 대체 가능!!
set {
koreanAge = newValue + 1
}
}
// 타입 저장 프로퍼티
static var typeDescription: String = "학생"
// 인스턴스 메서드 - (밑에 같은 거임)
func selfIntroduce() {
print("저는 \(self.class)반 \(name)입니다")
}
// 읽기전용 인스턴스 연산 프로퍼티
var selfIntroduction: String {
get {
return "저는 \(self.class)반 \(name)입니다"
}
}
// 타입 메서드 - (밑에 같은 거임)
static func selfIntroduce() {
print("학생타입 입니다")
}
// 읽기전용 타입 연산 프로퍼티
// 읽기전용에서는 get을 생략할 수 있다.
static var selfIntroduction: String {
return "학생타입 입니다"
}
}
// 저장 프로퍼티와 연산 프로퍼티의 기능은
// 함수, 메서드, 클로저, 타입 등의 외부에 위치한
// 지역/전역 변수에도 모두 사용 가능하다.
var a: Int = 100
var b: Int = 300
var sum: Int {
return a + b
}
print(sum) // 400
'# 02 > Swift' 카테고리의 다른 글
[Swift] 상속 (0) | 2020.06.04 |
---|---|
[Swift] 프로퍼티 감시자 (0) | 2020.06.04 |
[Swift] 클로저 고급 (0) | 2020.06.04 |
[Swift] 클로저 기본 (0) | 2020.06.04 |
[Swift] 값 타입과 참조 타입 (0) | 2020.06.04 |