let a = [0: true, 1: false] // Error: `filter` is ambiguous // let x = a.filter { $0.value }.sorted(by: { $0.key < $1.key }) // Equivalent let x1 = a.filter { $0.value } let x2 = x1.sorted(by: { $0.key < $1.key})
4からDictionary
のfilter
が二種類になったみたいで、 分割して書いた場合は優先順位が付くけどsorted
が続いた場合は型推論で両方通るのでambiguousになる?みたいですlet x = (a.filter { $0.value } as Array).sorted(by: { $0.key < $1.key })
ソートを先にするとかで対応できますがいまいち……