Swift(22) Stored Property, Computed Property

개발렬·2023년 9월 18일
0

Swift

목록 보기
22/23
post-thumbnail
  • 저장 프로퍼티 Stored Property
  • 연산 프로퍼티 Computed Property

프로퍼티의 위치의 중요성

클래스, 구조체, 열거형의 내부에 직접 작성합니다. 메소드 내에서도 변수나 상수를 사용하여 값을 저장할 수 있지만, 이것은 프로퍼티가 아닌 "지역 변수" 입니다.

Stored Property

  • 값을 저장, 저장된 값을 제공하는 역할
  • 상수 및 변수를 사용해서 정의 ex) var, let 키워드로 선언
  • 클래스와 구조체에서 사용 가능, 열거형 불가능

Stored Property를 선언할 때 주의점

프로퍼티에 값이 비어있으면 인스턴스를 생성할 때 nil값으로 초기화를 합니다.
그러므로 프로퍼티를 선언할 때 초기값을 할당할 수 있는 방법을 알아야 합니다.
1. 초기화 구문을 작성하고, 그 안에서 초기값을 할당

class Dog {
	var name: String
    
    init() {
    	self.name = ""
    }
}
  1. 옵셔널 타입
class Dog {
	var name: String?
}
  1. 초기값 할당
class Dog {
	var name: String = ""
}

Computed Properties

  • 연산을 통해 값을 만들어 제공
  • 변수만 사용 가능
  • 클래스, 구조체, 열거형 모두 가능

연산 프로퍼티(Computed Properties)는 다른 프로퍼티의 값을 연산 처리하여 간접적으로 값을 제공하는데, 이들은 직접 메모리 공간을 차지하지 않습니다.

연산이 필요한 경우 혹은 값을 동적을 계산해야 할 때 사용된다.
get 블록을 사용하여 값을 가져오고, 필요하다면 set 블록을 사용하여 값을 설정할 수 있습니다.

struct Circle {
    var radius: Double // 저장 프로퍼티
    var area: Double {
        get {
            return Double.pi * radius * radius // 계산 프로퍼티 (읽기 전용)
        }
        set {
            radius = sqrt(newValue / Double.pi) // 계산 프로퍼티 (쓰기 가능)
        }
    }
}
profile
Flutter, iOS...나는 모바일 앱 개발자

0개의 댓글