최근 SwiftUI를 공부하고 있는 중 SwiftUI요소가 아니라 문법적인 요소에서 아예 처음 보는 것이 나왔고 지금까지 이 기능을 구현하기 위해 애를 썼던 과거의 모습들이 떠올라 TIL로 남기게 되었다
사용법은 아주 간단하다
struct Human {
let name: String
let gender: String
}
let a = Human(name: "최두기", gender: "남자")
let b = Human(name: "권두기", gender: "여자")
let c = Human(name: "깍두기", gender: "중성")
let d = Human(name: "열무", gender: "중성")
let e = Human(name: "미지근", gender: "여자")
let people = [a, b, c, d, e]
현재 예시로 Human
이라는 struct를 만들었고 프로퍼티로 string타입의 name과 gender를 만들었다
그리고 gender를 기준으로 그룹화를 하려고 한다
즉, 원하는 형태는 [string: [Human]]
의 타입이고 여기서 key 값이 string인 이유는 gender가 string이기 때문이다
그리고 grouping에는 그룹화 하기 전의 배열을, by에는 배열 요소를 어떤 기준으로 그룹화 할지를 대입하면 되는데 아래 코드와 같다
let grouping = Dictionary(
grouping: people,
by: {$0.gender}
)
grouping에는 기존 배열, by에는 해당 배열의 어떤 요소...
그간 이 형태를 구현하기 위해 for문을 몇 번씩 돌면서 분리를 해줬었는데 진짜 멍청했다...
당장 로아랑부터 수정을 좀 해야겠다
(근데 Dictionary니까 재정렬하는 방법을 또 고민해야할 수도...?)