21. 10. 20 Namespace, CustomStringConvertible

Allie·2021년 11월 24일
0

TIL

목록 보기
6/14

Namespace

: 관련있는 것들끼리 모아놓은 공간?

case가 없는 열거형은 인스턴스화 되지 않고 네임스페이스 역할을 한다. 타입프로퍼티 사용!

case가 없는 열거형을 사용할 때 장점은, 뜻하지 않은 초기화를 막을 수 있고 namespace의 역할만 한다는 것이다.

enum JuiceRecipe {
        static let usageOfStrawberry = 16
        static let usageOfBanana = 2
        static let usageOfPineapple = 2
        static let usageOfKiwi = 3
        static let usageOfMango = 3
}

let strawberry = JuiceRecipe.usageOfStrawbeey
// 이런식으로 써줄 수 있음.
let myRecipe = JuiceRecipe() // error. 인스턴스화 할 수 없음.

열거형이나 구조체를 사용해서 namespace를 만들면 코드가 좀 더 깔끔하고 직관적인 것 같다.

CustomStringConvertible

에러타입 정할 때, 프로젝트이름의 에러로 정하는 방법이 있다.

에러타입에서 CustomStringConvertible 채택하면 에러케이스에 rawVlaue 할당 안하고 이런식으로 할수있음!

enum JuiceMakerError: Error, CustomStringConvertible {
	case outOfStock
	case invalidNumber

	var description: String {
	switch self {
case . outOfStock:
return "재고뷰족"
~
profile
게발자🦀 되는 중.. 궁김하다.. 궁김해..

0개의 댓글