아삭아삭 iOS 개발

[Swift 독학] 패스트캠퍼스 챌린지 22일차_프로퍼티_연산, 타입 프로퍼티 본문

Swift

[Swift 독학] 패스트캠퍼스 챌린지 22일차_프로퍼티_연산, 타입 프로퍼티

바닐라머스크 2022. 2. 14. 23:44

2) 연산 프로퍼티 (computed property)

  • 특정 연산을 수행하는 결과값
  • 특정 타입의 인스턴스와 연결
  • 클래스/구조체/열거형에서 사용 가능
  • 값을 직접적으로 저장하지 않음
    → 대신 get, set 사용해서 다른 프로퍼티와 값을 간접적으로 조회하고 설정 가능
  • 역할 2가지 수행
    1) 인스턴스 내외부의 값을 연산해서 적절한 값을 돌려주는 접근자 역할
    2)내부의 프로퍼티의 값을 간접적으로 설정하는 설정자 역할
  • 연산 프로퍼티에서 set 지우고 get만을 남겨서 읽기전용 연산 프로퍼티로 이용 가능
     단,  변경하여 설정 불가 (값을 반환하고 구문으로 접근만 가능)
  • set 사용시, 매개변수 이름을 별도로 지정하지 않으면 디폴트값인 ‘newValue’라는 이름으로 사용 가능
struct Coin {
    var onePrice: Int
    var theOtherPrice: Int
    var gazaaaa: Int {
        get {
            return onePrice * theOtherPrice
        }

        set(newPrice) {
            onePrice = newPrice / theOtherPrice
        }
    }
}

var coin = Coin(onePrice: 22860, theOtherPrice: 4520)
print(coin)
coin.gazaaaa

coin.gazaaaa = 51868000
coin.onePrice

 

 

 

3) 저장 프로퍼티 (type property)

  • 특정 타입에서 사용되는 프로퍼티
  • 인스턴스 생성 없이 객체 내의 프로퍼티에 접근을 가능하게
    →프로퍼티 타입 자체와 연결하는 것 의미
  • 코드와 같이 저장프로퍼티와 연산프로퍼티에서만 사용 가능
  • static keyword 사용하여 정의
  • 인스턴스를 생성하지 않고도 타입 이름과 타입 프로퍼티 이름을 점으로 연결해주면 접근 및 값변경 가능
struct TheStructure {
    static var storedTypeProperty = "Get Ugly by Jason Derulo" // 스토어
    static var computedTypeProperty: Int { //컴퓨디드
        return 3
    }
}

TheStructure.storedTypeProperty // "Get Ugly by Jason Derulo"
TheStructure.computedTypeProperty // 3

TheStructure.storedTypeProperty = "wow"
TheStructure.storedTypeProperty // “wow”로 값변경 가능

TheStructure.computedTypeProperty = 99 // 99로 값변경 불가.에러남

 

 

 

다음시간에는 '프로퍼티 관찰자'와 '프로퍼티 래퍼'에 대해 알아보겠습니다~~

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.