【问题标题】:Cannot find variable in scope在范围内找不到变量
【发布时间】:2020-11-18 21:14:00
【问题描述】:

在 Swift 中,我需要使用我在外部的 if/else 中创建的变量。我做了一个小代码只是为了显示问题

let test = 0
if test == 0 {
    let a = "Test is 0"
} else {
    let a = "Test is not 0"
}

print(a)

结果是在范围内找不到a

我需要 if 语句之外的变量值,而不是先在外面创建变量。请问我该怎么做?

【问题讨论】:

    标签: swift


    【解决方案1】:

    可以在外部创建变量,即使它是let 变量,只要它在ifelse 子句中都被分配了一个值,所以它总是被设置。

    let test = 0
    let a: String
    if test == 0 {
        a = "Test is 0"
    } else {
        a = "Test is not 0"
    }
    

    【讨论】:

    • 我不知道这个......非常有趣和乐于助人。令我惊讶的是,我没有看到在教程和代码示例中更频繁地使用它。不建议吗?
    • 不知道为什么不更多地使用它,因为它是一个非常有用的工具,而且如果你犯了错误,说在这种情况下忘记else,编译器会产生一个错误,所以它是完美的安全。
    • 这个我知道。但是就像我在描述中感到难过一样,我想解决这个问题而不在外面声明变量
    • @GeorgWeber 我认为您需要学习有关变量声明的基础知识,您永远不能在声明它的范围之外使用变量。在函数中声明的变量只能在该范围内使用函数,在if 子句中声明的变量只能在该子句中使用,依此类推。所以你问的是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 2021-03-22
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2021-06-18
    相关资源
    最近更新 更多