Si la declaración de 'guardia' de Swift debe salir del alcance, ¿cuál es la definición de alcance?

Estoy confundido acerca de la definición de un bloque de código o de 'alcance'. Los documentos de Apple para guardia dicen esto: el bloque else de una declaración de guardia ...

"debe transferir el control para salir del bloque de código en el que aparece la declaración de protección".

Otrofuentes en línea digamos que la declaración de guardia debe salir del 'alcance' en el que existe.

Así que tome el código de ejemplo a continuación:

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()

Según mi comprensión actual de 'alcance', el código

if y == 2 {....}

crea un nuevo alcance, es decir, entre {}. Y dado este supuesto, la guardia simplemente escaparía de ese alcance. Pero ese no es el caso. Guard en este caso escapa de la función en la que se encuentra, independientemente de si está enterrado en una cláusula if.

¿Estoy entendiendo completamente mal lo que significa 'alcance'? ¿Alcance significa el código contenido en un método? Si es así, ¿cuál es el término correcto para el 'espacio' que existe dentro de una declaración if?

Respuestas a la pregunta(3)

Su respuesta a la pregunta