function topFunction() {
if (checkUserRole()) {
//trying to figure out if I will hit this line
}
}
checkUserRole() {
anotherFunction()
}
anotherFunction() {
return true;
}
所以我要问的是,在这种情况下,原始checkUserRole()
是否会被认为是正确的?还是我需要以某种方式将true
从anotherFunction()
传递到checkUserRole()
?
答案 0 :(得分:3)
否,您需要明确将其退还:
class SomeClass {
lazy var executeOnce: () -> Void = {
doSomething()
return {}
}()
func doSomething() {
print("This should be executed once")
}
}
let someClass = SomeClass()
someClass.executeOnce()
someClass.executeOnce()
someClass.executeOnce()
在function topFunction() {
if (checkUserRole()) {
//trying to figure out if I will hit this line
}
}
checkUserRole() {
return anotherFunction();
}
anotherFunction() {
return true;
}
函数中没有返回的情况下,从checkUserRole
返回的true
丢失了。您最初编写它的方式不会从anotherFunction
返回任何内容,这意味着无论checkUserRole
或{发生了什么,它将在topFunction
的if语句中通过“真实的”测试{1}}。
答案 1 :(得分:0)
您在checkUserRole方法中缺少return语句