swiftのキャストの言語仕様に関して
as Int
とInt()
の違いを教えていただきたいです。
swiftでキャストをする際はas Hoge
とすると、キャストされるかと思います。
そして、Int()
もIntにキャストしてくれる関数との認識です。
appleの公式ドキュメントを見たり、ぐぐってみましたが、両者の違いがいまいちよくわかっておりません。
以下のキャプチャのコードで、as Int
とInt()
でキャストをしてみると、as Int
のほうだけ、
エラーが出てしまいます。UInt32をIntにキャストできないというエラーなら、Int()
でも
同じエラーが出ていいと思うのですが、出ないということからすると両者の挙動に
違いがあるのだろうなと考えています。
そもそも、UInt32をIntにキャストできないのも謎で、
そちらも合わせてご説明いただけると幸いです。
よろしくお願いします。
なお、補足ですが、arc4random()
はUInt32の戻り値を持っています。