Int()不会从String转换为Optional Integer(Swift)

时间:2018-02-18 20:53:47

标签: swift optional forced-unwrapping

我是编程新手并从Swift开始。我带来的第一个问题如下:

我有4个变量

var a = "345"

var b = "30.6"

var c = "74hf2"

var d = "5"

我需要计算整数的总和(如果不是整数,它将变为零)

if Int(a) != nil {
  var aNum = Int(ar)!
} 

if Int (b) != nil {
  var bNum = Int (b)! 
}       

依旧......

据我所知,Int()应该将每个元素转换为一个Optional Integer。

然后我应该通过转换Int来强制解包?到Int,然后才能将它用于我的目的。但相反,当我计算变量的总和时,编译器会将它们相加为字符串。

 var sum = aNum + bNum + cNum + dNum

输出:

  34530.674hf25

为什么我的变量被声明为字符串然后用Int()转换为可选的整数,为什么不起作用?

1 个答案:

答案 0 :(得分:2)

您的代码存在拼写错误,因此很难说出您实际要做的事情:

假设您的第二个变量应为b,如下所示:

var a = "345"
var b = "30.6"
var c = "74hf2"
var d = "5"

///Then you can use code like this:

var sum = 0

if let aVal = Int(a) { sum += aVal }

if let bVal = Int(b) { sum += bVal }

if let cVal = Int(c) { sum += cVal }

if let dVal = Int(d) { sum += dVal }

print(sum)

打印350,因为只有3455是有效的Int值。