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