2014-09-19 48 views
0

在swift操場中,我們需要明確地將Int轉換爲CGFloat,否則操作系統會說ERROR。爲什麼Swift需要明確地將Int轉換爲浮點型

例如,

let someInt: Int = 3 
let someFloat: CGFloat = CGFloat(someInt) 

使用時CGRectMake(......),我們必須投詮釋到CGFloat的。

爲什麼不能隱式發生?這種方式設計的考慮是什麼? 感謝您在這裏討論。

+1

就是這樣。 Swift中沒有類型變量的自動強制,甚至是數值類型的變量。你在問_why_?這是一個意見問題,不適合Stack Overflow。 – matt 2014-09-19 01:03:09

+1

在這裏進一步討論此主題:http://stackoverflow.com/questions/24108827/swift-numerics-and-cgfloat-cgpoint-cgrect-etc – matt 2014-09-19 01:04:37

+0

它基本上是轉向隱式轉換警告(在其他語言)錯誤 – 2014-09-19 01:25:02

回答

1

Int和CGFloat是不同的類型,所以你不能在Swift中分配一個。另外,在這些情況下你並沒有真正投射。快速轉換使用asas?關鍵字。相反,你是從someInt創建一個新的CGFloat實例。

我不確定他們爲什麼這樣設計語言,但是馬特說這些選擇背後的推理並不是Stack Overflow的主題。