열거 형과 구조체 사이의 관계를 구축하려고합니다. 열거 형의 각 요소를 반환하는 구조체에 계산 된 속성을 갖고 싶습니다. 그러나 구조체에는이 열거 형 인스턴스가 없으며 정적 구현에 가깝습니다. 이 코드가 제대로 작동하도록 구문에 대한 제안을 찾고 있습니다. 또는 아마도 내 형식을 나타내는 더 좋은 방법 일 것입니다. 다음은 예제 코드입니다 :구조체 관련 열거 형의 계산 된 속성
enum ScaleDegree: Int {
case tonic
case supertonic
// there's more...
}
struct Scale {
// among other things,
// returns scale notes for the diatonic chords associated with the ScaleDegree
var triad: [Int] {
switch ScaleDegree {
case .tonic: return [1, 3, 5]
case .supertonic: return [2, 4, 6]
}
}
}
물론 위의 코드는 컴파일되지 않습니다. 그러나, 그것은 내가하려는 일의 좋은 예입니다. 이 예제에서는 ScaleDegree의 인스턴스를 Scale에서 원하지 않지만 Scale이 모든 ScaleDegree에 대해 결과를 제공 할 수있게하려고합니다. 이렇게하는 우아한 방법에 대한 제안?
전산화 속성이나 기능은 한 가지를 반환 할 수 있습니다 그것을 튜플과 같은 여러 항목으로 구성 될 수 있습니다.) 그래서 어떤 트라이어드가 반환 될 것이므로 원하는 것을 수행 할 수 없습니다. 트라이어드가 열거 형에 대한 모든 가능한 조합을 반환하도록하려면 배열 또는 사전 [Int] –