본문 바로가기

# 02/Swift

[Swift] 프로퍼티

반응형

프로퍼티


- 저장 프로퍼티(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