Xcode 8 ベータ版を使用して、プロジェクトを Swift 2.2 から Swift 3.0 に移行しました。
次のコードに似たものがあります (これをプレイグラウンドに貼り付けることができます)。
import Foundation
let datesWithCount: [(Date, Int)] = [(Date(), 1), (Date(), 2), (Date(), 3)]
let dates: [Date] = datesWithCount.sorted {
$0.0 < $1.0
}.prefix(1).map {
return $0.0
}
Swift 2.2 では、これは正常にコンパイルされました。ただし、Swift 3.0 ではエラーが発生します。
「プレフィックス」のあいまいな使用
これを Swift 3.0 でコンパイルする唯一の方法は、マップを別の行に分割することです。
let sortedDatesWithCount = datesWithCount.sorted {
$0.0 < $1.0
}.prefix(1)
let mappedDates = sortedDatesWithCount.map {
return $0.0
}
ところで、実際のコードではnotNSNotification
からオブジェクトを返していますが、エラーは同じです。ここでは、例を簡単にするために使用しました。map
Date
Date
これをワンライナーとしてコンパイルする方法はありますか?
更新: Swift プロジェクトのJIRAを作成しました。