: 관련있는 것들끼리 모아놓은 공간?
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
채택하면 에러케이스에 rawVlaue 할당 안하고 이런식으로 할수있음!
enum JuiceMakerError: Error, CustomStringConvertible {
case outOfStock
case invalidNumber
var description: String {
switch self {
case . outOfStock:
return "재고뷰족"
~