Swift 4 的 Int 和 UInt32 終於可以比較了

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

Image for post
Image for post

因此,我們需要將 arc4random_uniform 回傳的結果另外變成 Int,才能做比較。

let answer = Int(arc4random_uniform(100))

這一切,在 Swift 4 都是過去式了 ! 感謝 SE-0104 的 Protocol-oriented integers,現在 Int 和 UInt32 終於可以直接比較 !

Image for post
Image for post

SE-0104 Protocol-oriented integers

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store