objective-c - Swift 里 guard 的里面不能用变量吗 , 那我想修改怎么办。

【字号: 日期:2023-11-30浏览:34作者:雯心

问题描述

//我想在guard 改变num2的值.可是报错了func demoGuard() {

let oNum: Int? = nil guard var num2 = oNum else{num2 = 10return }

}

objective-c -  Swift 里  guard 的里面不能用变量吗 , 那我想修改怎么办。

问题解答

回答1:

num2 的作用域只在 guard 之后, 但是走到 else 里的时候就 return 了, 这时候改变 num2 的值有什么意义?我猜你是想改 oNum 的值? 这样的话, 你把 let oNum 改成 var oNum 就可以在 guard 里改了, 但是同样的是没有意义的。 如果你想改的值是一个外部调用时传进来的 inout 类型的参数的值,还有可能有意义。

回答2:

这种需求很奇怪,倒还不如用??运算符

num2 = oNum ?? 10

相关文章: