🥇 Scope.

🍿 Que significa “scope” en programación?

El scope o alcance de una variable, se refiere a donde esta variable existe y tiene una relación con el lugar en el que esta fue declarada.

🍿 El scope en Go.

🍿 Ejemplo del uso de scope en Go.

package main

import "fmt"

var var1 = "Este es el nivel 1"

func main() {
    var var2 = "Este es el nivel 2"
    {
        var var3 = "Este es el nivel 3"
    }
    fmt.Println(var1)
    fmt.Println(var2)
    fmt.Println(var3)
}

Si intentamos ejecutar el código mostrado, nos toparemos con el problema del compilador.

# command-line-arguments
016_scope/main.go:14:14: undefined: var3

Y esto se debe a que la variable var3 se ha definido en un bloque fuera del alcance de la instrucción fmt.Println. Ya que como se comento el alcance de las variables es solo a partir del bloque en el cual son definidas.

Para poder corregir este problema, tenemos que mover la instrucción fmt.Println a un lugar en donde var3 sea accesible. Corrigiendo el ejemplo anterior tendriamos.

package main

import "fmt"

var var1 = "Este es el nivel 1"

func main() {
    var var2 = "Este es el nivel 2"
    {
        var var3 = "Este es el nivel 3"
        fmt.Println(var3)
    }
    fmt.Println(var1)
    fmt.Println(var2)
}
Declaración corta de variables. Uso de punteros.
comments powered by Disqus