2016-09-28 42 views
0

我是新來的研究迅速和iOS及其文檔閱讀:斯威夫特類型:在表達式結合整數和浮點文字

如果你在表達結合整數和浮點文字中,型雙將從上下文中推斷:

let anotherPi = 3 + 0.14159 
// anotherPi is also inferred to be of type Double 

的3字面值沒有明確的類型在其本身,所以 雙適當的輸出類型爲I從 存在的浮點數作爲加法的一部分推出。

我明白,如果你嘗試添加一個明確的整數類型和一個明確的double類型,swift會給你一個錯誤,因爲你不能在swift中添加一個int和一個double。文檔中的以上引用是否意味着整數文字3被推斷爲swift類型的double,然後將其添加到浮點文字0.14159,該文字也被推斷爲double類型?或者這是否意味着如果你添加一個整型文本和一個浮點型文本輸出被推斷爲雙?

回答

1

默認情況下,浮點文字被推斷爲Double。可以在一個遊樂場測試:

// Swift 3 

let a = 0.14159 

print(type(of: a)) // Double 

let b = 1 + a // works 

let c = Int(1) + a // doesn't work 

實施例B工作,因爲文字1的整數可以被推斷爲雙(因爲它被添加到一個Double)。示例C不起作用,因爲1是明確的Int。這保留了Swift的數字類型安全性,同時仍然可以輕鬆執行簡單的數學運算。