首页 > Swift 里 guard 的里面不能用变量吗 , 那我想修改怎么办。

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

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

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

}


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


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

num2 = oNum ?? 10
【热门文章】
【热门文章】