Если оператор Swift 'guard' должен выйти из области действия, каково определение области действия?

Я запутался в определении блока кода или «области видимости». Документы Apple для охранника говорят так: блок else заявления о защите ...

msgstr "должен передать управление для выхода из блока кода, в котором появляется оператор охраны."

Другойинтернет-источники скажем, оператор охраны должен выйти из «области действия», в которой он существует.

Итак, возьмите пример кода ниже:

func testGuardControlFlow () {

let x = 2
let y = 2

    func embededFunc () {

        if y == 2 {

            guard x == 1 else {
                print("oops, number is not 1")
                return
            }

            print ("from in embededFunc")

        }

        print ("I still want this to print even if x != 1")
    }

    embededFunc()
    print("Great, return still allows this to be printed.")

}

testGuardControlFlow()

Согласно моему нынешнему пониманию «объема», код

if y == 2 {....}

создает новую область видимости, а именно между {}. И, учитывая это предположение, охранник просто избежит этого. Но это не тот случай. Guard в этом случае выходит из функции, в которую она помещена, независимо от того, скрыта ли она в условии if.

Я совершенно не понимаю, что означает «сфера»? Означает ли область действия код, содержащийся в методе? Если да, то каков правильный термин для «пробела», который существует в операторе if?

Ответы на вопрос(3)

Ваш ответ на вопрос