2016-12-16 41 views
-5

我有以下最後一行和迅速經過簡單的代碼提供錯誤 和VAR總和=輸入* 2應改爲VAR總和=輸入!* 2爲什麼SWIFT認爲其可選的讓輸入= INT(一)

我不確定爲什麼,因爲我沒有將變量a聲明爲可選。 快速輸入是否可選?謝謝

Var a="2" 
let input = int(a) 
var sum=input*2 
+0

謝謝大家對你的答案的方式。 –

回答

3

將一個字符串投射到一個int返回和可選,因爲它可能會失敗。

例如,let result = Int("foo")將返回nil,因爲「foo」不是有效的Int。

2

如果你沒有

Var a = "This is most defiantly not a number and even if it were its too long to fit within an int 123457993849038409238490ff9f-09-0f9-09f dd0d0066646464646464349023849038490328 I'm a teapot". 
let input = int(a) 

你認爲可以轉換成int?現在你明白爲什麼它是可選的嗎?

1

如果字符串不能轉換爲Int會發生什麼?如Int(「A」)。它成爲一個可選項,因爲編譯器無法確定您傳入的字符串是否可以成爲Int。

guard let intVal = Int(a) else { return } 

if let intVal = Int(a) { 
//you have a valid Int here 
} 

是去處理這種情況

相關問題