Swift 4 的 Int 和 UInt32 終於可以比較了
本是同根生,相煎何太急。在 Swift 3,Int 和 UInt32 都是整數,卻偏偏不能比較。如以下例子,我們想判斷利用 arc4random_uniform 隨機產生的 answer 和 Int 型別的 guessNumber 是否一樣,卻會產生錯誤,因為 arc4random_uniform 回傳的資料型別是 UInt32。

因此,我們需要將 arc4random_uniform 回傳的結果另外變成 Int,才能做比較。
let answer = Int(arc4random_uniform(100))
這一切,在 Swift 4 都是過去式了 ! 感謝 SE-0104 的 Protocol-oriented integers,現在 Int 和 UInt32 終於可以直接比較 !

SE-0104 Protocol-oriented integers