我在最后一行总和swift给出错误之后遵循了简单的代码 和var sum = input * 2应更改为var sum = input!* 2
我不确定为什么因为我没有声明变量a是可选的。 swift是否可以选择输入?感谢
Var a="2"
let input = int(a)
var sum=input*2
答案 0 :(得分:3)
将字符串转换为int返回和Optional,因为它可能会失败。
例如,let result = Int("foo")
将返回nil,因为" foo"不是有效的Int。
答案 1 :(得分: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吗?现在你明白为什么它是可选的吗?
答案 2 :(得分:1)
如果String无法转换为Int,会发生什么?如Int(“A”)。它成为一个可选项,因为编译器无法确定您传入的String是否可以成为Int。
guard let intVal = Int(a) else { return }
或
if let intVal = Int(a) {
//you have a valid Int here
}
是处理这种情况的方法