let strawberry = Fruit()
let banana = Fruit()
let kiwi = Fruit()
let pineapple = Fruit()
let mango = Fruit()
위 코드처럼 상수를 만들어 놓았을 때, 관련이 있는 것 끼리 모아두고 싶었어요.
그러던 도중 재밌는 글을 찾게 됐습니다 !
여기를 눌러서 같이 봐봐요 👍🏻
NameSpace
라고 합니다 !
위 코드를
struct FruitStore {
static let strawberry = 1
static let banana = 2
static let kiwi = 3
}
이렇게 구조체를 만들었어요.
사용 방법은
FruitStore.strawberry
와 같이 인스턴스 선언을 하지 않습니다 !
그런데 이건 인스턴스가 가능해요 ㅠㅠ
인스턴스를 막기위해 우리는
struct FruitStore {
private init() {}
static let strawberry = 1
static let banana = 2
static let kiwi = 3
}
을 선언해줍니다 !
또, struct
말고도 enum
을 사용해줄 수 있습니다 !
enum FruitStore {
static let strawberry = 1
static let banana = 2
static let kiwi = 3
}
enum은 인스턴스화가 가능하지 않기 때문에 private init() {}
를 해주지 않아도 됩니다 !
오호! 저는 문자열 관리할 때 struct로 할껀지 enum으로 할껀지에 대해 생각해봤던 적이 있어요 :)
인스턴스가 생기지 않게 하기 위해 enum으로 선언했었는데 struct로 만들어도 인스턴스가 생기지 않게 하는 방법이 있군요! 잘 보고 갑니다🤗