【发布时间】:2018-02-18 20:53:47
【问题描述】:
我是编程新手,从 Swift 开始。我遇到的第一个问题如下:
我有 4 个变量
var a = "345"
var b = "30.6"
var c = "74hf2"
var d = "5"
我需要计算整数的总和(如果不是整数,它将变为nil)
if Int(a) != nil {
var aNum = Int(ar)!
}
if Int (b) != nil {
var bNum = Int (b)!
}
等等……
据我了解,Int() 应该将每个元素转换为可选整数。
那么我应该通过转换 Int 来使用强制展开?到 Int,然后我才能将它用于我的目的。但是,当我计算变量的总和时,编译器会将它们作为字符串求和。
var sum = aNum + bNum + cNum + dNum
输出:
34530.674hf25
为什么我的变量(声明为字符串,然后使用 Int() 转换为可选整数)不起作用?
【问题讨论】:
-
你在哪里“数一数”? – 顺便说一句,
var 6 = "30.6"清楚地表明这不是您的真实代码。 -
您应该花点时间阅读 Swift 书籍的 Optionals 部分。
-
仅供参考 - 你的四个
String变量不是可选的。但这与您的问题无关。 -
您的
if Int(a) != nil { var aNum = Int(ar)! }将整数分配给 局部变量aNum,其范围只是 if 块。显然你有另一个aNum变量(可能是一个字符串),你没有显示它,它在var sum = aNum + bNum + cNum + dNum中“添加”。
标签: swift optional forced-unwrapping