2015-03-13 50 views
2

我正在使用Xcode遊樂場到downcast in swift。類型轉換通常允許我在Swift中使用As運算符將類型轉換爲派生類型。但它會給我錯誤,而我嘗試將double類型字符串轉換爲var類型。提前致謝!!如何投射數字類型?

var a = 1 
    var b = a as Int 
    var c = a as Double 
    var d = a as String 
+0

哦對不起我是說關於向下轉換...我想你說的是typecast.So我們如何去執行? – 2015-03-13 09:26:23

回答

4

你不能把它轉換爲每其他因爲他們不相關。您只能投射相關類型,如UILabelUIView[AnyObject][String]。鑄造IntDouble無異是想投一個CGPointCGSize

因此,爲了例如改變IntDouble你必須做Double(Int)使該Int的新Double

這適用於所有數字類型,如UInt Int64 Float CGFloat

+0

編輯問題所以,我真的很困惑爲什麼要使用向下轉換,如果我不能將類型轉換爲不相關的類型?順便說一句,你說什麼,你只能施展相關類型? – 2015-03-13 09:52:59

+0

@rintaro哈哈我沒有注意到這種類型,謝謝我編輯它x) – Arbitur 2015-03-13 09:54:50

+0

@anishparajuli我的意思是,在Swift(這是嚴格的類型)你不能只投出一些不是你的類型的孩子試圖投入。 – Arbitur 2015-03-13 09:57:45

0

試試這個:

var a = 1 
var b = Int(a) 
var c = Double(a) 
var d = String(a) 
+0

我在發佈這個問題之前,從「類型轉換」到「向下轉換」 – 2015-03-13 14:32:11

0

演員作爲詮釋的作品,因爲a是詮釋

你應該做的是這樣的:

var c = Double(a) 
var d = toString(a) //or String(a)