因此,我是新手,不知道为什么它不能识别print(right_answer)
,即使它与声明在相同的IBAction
函数中也是如此。
@IBAction func answer_three(_ sender: Any) {
if randomnumber1 == 2 {
var right_answer = true
} else {
let right_answer = true
}
//Error "Use of unresolved identifier 'right_answer' on line below
print(right_answer)
}
如果您需要更多信息或代码,请告诉我。
答案 0 :(得分:1)
每当您有花括号时,它就会定义一个本地范围。当您离开花括号时,您将退出该范围。如果在一组花括号内定义变量,则该变量仅存在于这些花括号内。
将变量right_answer的声明移到函数顶部,如下所示:
@IBAction func answer_three(_ sender: Any) -> Bool {
var right_answer: Bool
if randomnumber1 == 2 {
right_answer = true
} else {
right_answer = true
}
print(right_answer)
return right_answer
}
(您的原始代码在所有情况下都将right_answer设置为true,这没有多大意义。由于我不知道您要想要做什么,所以我采用了这种方式。)< / p>
请注意,变量right_answer仍是该函数的局部变量。退出函数时,该变量将超出范围,并且该变量不再存在。 (没关系,因为您关心的是函数的返回值。)
局部和全局范围的思想是编程的基础。您应该读一本有关编程的书。苹果的Swift编程iBook将是一个不错的选择。它从一开始就教您使用Swift进行编程。