守卫不退出功能

Guard does not exit function

这可能是一个非常愚蠢的问题,但请耐心等待: 据我了解,在阅读了其他网站上的文档和各种示例后,guard 语句检查了一个布尔值。如果为真,则当前作用域继续执行。如果不是,则执行 else 子句。这里应该使用 return 语句退出当前范围。然而这对我不起作用。

基本上:为什么return不退出这个函数?

class Person {

    var name: String

    init (name: String) {
        self.name = name
    }

    func reverseNameUnlessItsHans() {
        guard name == "Hans" else { //should exit the scope...
            print("It's Hans")
            return
        }
        self.name = String(name.characters.reversed()) //...yet this is executed
    }
}

var myPerson = Person(name: "Hans")
myPerson.reverseNameUnlessItsHans()
print(myPerson.name) //prints "snaH"

您正在防范 name == "Hans"

的情况

把你的反面改成在防护罩里面,印刷品应该替换反面