translation/spanish/03-paquetes-y-funciones/preguntas/03-funciones/README.md
package awesome
import "fmt"
var enabled bool
func block() {
var counter int
fmt.Println(counter)
}
3: Eso es correcto.
enabledenabledestá fuera de cualquier función, por lo que es un nombre de ámbito de paquete. La funcionblock()también tiene el alcance del paquete; también está fuera de cualquier función.
2: Eso es correcto. Los nombres de los paquetes importados tienen un ámbito de archivo. Y solo se pueden usar dentro del mismo archivo.
5: Eso es correcto.
counterse declara dentro de la funcionblock()por lo que está en el alcance del bloque func. Fuera de la funcionblock(), otro código no puede verlo.
block() ver el nombre enabled?1: Todo el código dentro del mismo paquete puede ver todos los demás nombres declarados a nivel de paquete.
awesome ver el nombre de counter?4: Eso es correcto. Ninguno de los otros códigos puede ver los nombres dentro de la funcion
block().Solo el código dentro de la funcionblock()puede verlos (Solo hasta cierto punto. Por ejemplo: Dentro del bloque, el código solo puede ver las variables declaradas antes).
awesome ver el nombre defmt ?3: Solo el mismo archivo puede ver los paquetes importados, no los otros archivos, ya sea que estén en el mismo paquete o no.
package awesome
import "fmt"
// declared twice in the package scope
var enabled bool
var enabled bool
func block() {
var counter int
fmt.Println(counter)
}
2: Eso es correcto. No puede declarar el mismo nombre en el mismo ámbito. Si pudiera hacerlo, ¿cómo volvería a acceder a él? ¿O a cuál?
package awesome
import "fmt"
// declared at the package scope
var enabled bool
func block() {
// also declared in the block scope
var enabled bool
var counter int
fmt.Println(counter)
}
1: En realidad, puede declarar el mismo nombre en los ámbitos internos de esta manera. La funcion
block()está dentro de su paquete. Esto significa que puede acceder al alcance de su paquete (pero no al revés). Entonces, la funcionblock()de 'está bajo el alcance de su paquete. Esto significa que puede volver a declarar el mismo nombre. Anulará el nombre del ámbito principal. Ambos pueden existir juntos. Consulte el ejemplo en el repositorio de cursos para averiguarlo.