2
현재 현재 프로젝트를 Swift3 (2.3 이상)로 마이그레이션 중이며 시퀀스 형식에 대한 확장명에 문제가 있습니다. 확장은 소스 배열에서 고유 한 값의 사전을 반환하도록 설계되었습니다. 즉 var myArray = ["Apple","Apple","Orange","Banana","Banana"]
Swift 3 - 고유 한 요소 개수로 사전 배열을 줄입니다.
".freq"확장자는 다음 형식의 사전을 반환합니다.
:
extension Sequence where Self.Iterator.Element: Hashable { func freq() -> [Self.Iterator.Element: Int] { return reduce([:]) { (accu: [Self.Iterator.Element: Int], element) in accu[element] = (accu[element]? + 1) ?? 1 return accu } } }
문제가
accu[element] = (accu[element]? + 1) ?? 1
인해 구문 변화, 스위프트 3에서 작동하지 않습니다 라인은 다음과 같습니다작동 현재 스위프트 2.3 구문이다 아래 첨자를 통해 할당 할 수 없습니다. accu는 let 상수입니다.["Apple":2,"Orange":1,"Banana":2]
아마도 이것이 쉬운 문제는 아니지만 swift3에서이를 수행하는 방법에 대한 적절한 예를 찾을 수없는 것 같습니다.
큰 작동합니다. 감사. – Villainsoft
안녕하세요. @Villainsoft – wajeeh