if someCondition() {
something := getSomething()
} else {
something := getSomethingElse()
}
print(something)
在此代码示例中,编译器出现undefined: something
错误。由于这是一个if else语句something
变量将在运行时定义,但编译器无法检测到这一点。
如何避免此编译错误,这也将在下一版本中修复?
答案 0 :(得分:1)
两个something
变量是具有不同范围的两个不同变量。它们不存在于if / else块作用域之外,这就是为什么会出现未定义的错误。
您需要在if语句之外定义变量,如下所示:
var something string
if someCondition() {
something = getSomething()
} else {
something = getSomethingElse()
}
print(something)
答案 1 :(得分:1)
在您的代码片段中,您将定义两个something
变量,这些变量作用于if语句的每个块。
相反,您需要一个在if语句之外的单个变量:
var something sometype
if someCondition() {
something = getSomething()
} else {
something = getSomethingElse()
}
print(something)