Swift - 타입 프로퍼티

이원석·2024년 11월 12일

Swift

목록 보기
7/38

타입프로퍼티

클래스, 구조체, 열거형에서 사용된다. 저장 타입 프로퍼티와 연산 타입 프로퍼티가 존재하며, 저장 타입 프로퍼티의 경우 선언할 당시 원하는 값으로 항상 초기화가 되어 있어야 한다. static을 이용해 선언하며, 자동으로 lazy로 작동한다(lazy를 직접 붙일 필요 또한 없다)

  • 저장 & 연산 프로퍼티
class Human{
	let name: String = "abc"	//저장 프로퍼티
    var alias: String{			//연산 프로퍼티
    	return name + "def"
    }
}
  • 저장 타입 & 연산 타입 프로퍼티
class Human{
	static let name: String = "abc"	//저장 타입 프로퍼티
    static var alias: String{		//연산 타입 프로퍼티
    	return name + "def"
    }
}
  • 저장 타입 프로퍼티의 경우 항상 초기값을 가져야 함
  • 접근 방식
let people: Human = .init()
people.name // 에러

Human.name
  • 타입 프로퍼티는 첫 호출시 한번 메모리에 올라가고(lazy), 그 뒤로는 어디서든 해당 프로퍼티를 공유하는 형태

연산 타입 프로퍼티의 오버라이딩

연산 타입 프로퍼티는 서브클래스에서 오버라이딩이 가능
오버라이딩이 가능한 연산 타입 프로퍼티의 경우 static대신 class를 붙인다
(static은 오버라이딩이 불가능한 연산 타입 프로퍼티)

class Human {
    class var alias: String {
        return "Human Type Property"
    }
}
 
class People: Human {
    override class var alias: String {
        return "People Type Property"
    }
}
 
Human.alias             // "Human Type Property"
People.alias  

타입 프로퍼티 사용이유

  • 타입 프로퍼티는 보통 모든 타입이 공통적인 값을 정의하는데 유용하게 쓰임

참고
개발자 소들이

0개의 댓글