add: spanish 03-packages-and-scopes
This commit is contained in:
@ -0,0 +1,15 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func bye() {
|
||||
fmt.Println("Bye!")
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func hey() {
|
||||
fmt.Println("Hey!")
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello!")
|
||||
|
||||
// Puedes acceder a funciones desde otros archivos
|
||||
// los cuales esten en el mismo paquete
|
||||
// Por ejemplo, `main()` puede acceder a `bye()` y `hey()`
|
||||
|
||||
// Porque bye.go, hey.go y main.go
|
||||
// estan en el mismo paquete.
|
||||
|
||||
bye()
|
||||
hey()
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
// Librerias importadas
|
||||
import "fmt"
|
||||
|
||||
// variables del paquete
|
||||
const ok = true
|
||||
|
||||
// función del paquete
|
||||
func main() { // Empieza el bloque de la función
|
||||
var hola = "Hola"
|
||||
|
||||
// hola y ok son visibles aquí
|
||||
fmt.Println(hola, ok)
|
||||
|
||||
} // Termina el bloque de la función
|
@ -0,0 +1,27 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
func nope() { // Empieza el bloque de la función
|
||||
|
||||
// hola y ok solamente son visibles aquí
|
||||
const ok = true
|
||||
var hola = "Hola"
|
||||
|
||||
_ = hola
|
||||
} // Termina el bloque de la función
|
||||
|
||||
func main() { // Empieza el bloque de la función
|
||||
|
||||
// hola y ok no son visibles aquí
|
||||
|
||||
// ERROR:
|
||||
// fmt.Println(hola, ok)
|
||||
|
||||
} // Termina el bloque de la función
|
@ -0,0 +1,40 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
// No hable de esto en la lectura
|
||||
// quiero dejarlo aqui como una pequeña nota
|
||||
// Por favor revisalo.
|
||||
|
||||
var declarameOtraVez = 10
|
||||
|
||||
func anidado() { // Empieza el bloque de la función
|
||||
|
||||
// declara las misma variables
|
||||
// ambas pueden existir juntas
|
||||
// Esta solo pertenece a esta función
|
||||
// la variable del paquete sigue intacta
|
||||
var declarameOtraVez = 5
|
||||
fmt.Println("Dentro del anidado:", declarameOtraVez)
|
||||
|
||||
} // Termina el bloque de la función
|
||||
|
||||
func main() { // Empieza el bloque de la función
|
||||
|
||||
fmt.Println("Dentro de main:", declarameOtraVez)
|
||||
|
||||
anidado()
|
||||
|
||||
// a nivel paquete, declarameOtraVez no fue alterado
|
||||
// desde el cambio dentro de la funcion anidado
|
||||
fmt.Println("Dentro de main:", declarameOtraVez)
|
||||
|
||||
} // Termina el bloque de la función
|
@ -0,0 +1,15 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func bye() {
|
||||
fmt.Println("Bye!")
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func hey() {
|
||||
fmt.Println("Hey!")
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello!")
|
||||
//Dos archivos pertenecen al mismo paquete
|
||||
// llamando `bye()` de bye.go a aqui
|
||||
bye()
|
||||
}
|
||||
|
||||
// Ejercicio: Quita los comentarios de la siguiente función y analiza el error
|
||||
|
||||
// func bye() {
|
||||
// fmt.Println("Bye!")
|
||||
// }
|
||||
|
||||
// ***** EXPLICACIÓN *****
|
||||
//
|
||||
// ERROR: "bye" function "redeclared"
|
||||
// in "this block"
|
||||
//
|
||||
// "this block" significa = "main package"
|
||||
//
|
||||
// "redeclared" significa = Estas usando el mismo nompre en la funcion otra vez
|
||||
//
|
||||
// La función main package es:
|
||||
// todo el codigo que esta en el mismo paquete main
|
@ -0,0 +1,19 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
// quita los comentarios del codigo para ver el error
|
||||
// (Solo quita las // del codigo en las 3 lineas siguientes)
|
||||
|
||||
// Este archivo no puede ver los nombres importados de main.go ("fmt")
|
||||
// porque los nombres importados pertenecen a la funcion del archivo (librerias)
|
||||
|
||||
// func bye() {
|
||||
// fmt.Println("Bye!")
|
||||
// }
|
@ -0,0 +1,14 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello!")
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
f "fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello!")
|
||||
f.Println("There!")
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// EJERCICIO: Usa tu propio paquete
|
||||
//
|
||||
// Crea algunos archivos Go y llama sus funciónes desde
|
||||
// la funcion main
|
||||
//
|
||||
// 1- Crea los archivos main.go, greet.go y bye.go
|
||||
// 2- En main.go: Llama a las funciones greet y bye.
|
||||
// 3- Corre `main.go`
|
||||
//
|
||||
// PISTA
|
||||
// La funcion greet deberia de estar en greet,go
|
||||
// La funcion bye deberia de estar en bye.go
|
||||
//
|
||||
// SALIDA ESPERADA
|
||||
// Hola!!
|
||||
// Adios!!
|
||||
// ---------------------------------------------------------
|
||||
|
||||
func main() {
|
||||
// Llama a las funciones de los otros archivos aqui.
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// For more tutorials : https://learngoprogramming.com
|
||||
// In-person training : https://www.linkedin.com/in/inancgumus/
|
||||
// Follow me on twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func bye() {
|
||||
fmt.Println("adios!!")
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func greet() {
|
||||
fmt.Println("hola!!")
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
func main() {
|
||||
greet()
|
||||
bye()
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// EJERCICIO: Prueba las funciones
|
||||
//
|
||||
// 1. Crea 2 archivos: main.go y printer.go
|
||||
//
|
||||
// 2. En printer.go:
|
||||
// 1. Crea una funcion llamada hello
|
||||
// 2. Dentro de la funcion hello, imprime tu nombre
|
||||
//
|
||||
// 3. En main.go:
|
||||
// 1. Crea la tipica funcion func main
|
||||
// 2. Llama a tu funcion solo usando su nombre: hello
|
||||
// 3. Crea una funcion llamda bye
|
||||
// 4. Dentro de la funcion bye, imprime "bye bye"
|
||||
//
|
||||
// 4. En printer.go:
|
||||
// 1. Llama a la funcion bye desde dentro de la funcion hello
|
||||
// ---------------------------------------------------------
|
||||
|
||||
func main() {
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
// Como puedes verm no necesito importar el un paquete
|
||||
// y puedo llamar a la funcion 'hello' aqui
|
||||
//
|
||||
// Esto es porque las funciones de paquetes (librerias)
|
||||
// estan compartidas en el mismo paquete
|
||||
hello()
|
||||
// pero aqui no puedo acceder al paquete fmt sin importarlo
|
||||
//
|
||||
// Esto es porque esta en la funcion del archivo printer.go
|
||||
// lo importa
|
||||
//
|
||||
|
||||
// esta funcion main puede tambien llamar a la funcion bye aqui
|
||||
// bye()
|
||||
}
|
||||
|
||||
// printer.go puede llamar a esta funcion
|
||||
//
|
||||
// Esto es porque la funcion bye esta en la funcion del paquete (libreria)
|
||||
// del paquete main ahora
|
||||
// .
|
||||
//
|
||||
// La funcion main tambien puede llamar aqui.
|
||||
func bye() {
|
||||
fmt.Println("bye bye")
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func hello() {
|
||||
// Solo este archivo puede acceder a la funcion de paquete fmt
|
||||
// cuando otros ya lo hiciero, ellos tamvien pueden acceder
|
||||
// Su propio 'fmt' "name"
|
||||
|
||||
fmt.Println("hi! this is inanc!")
|
||||
bye()
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// EJERCICIO: Renombra las importaciones
|
||||
//
|
||||
// 1- Importa el paquete fmt tres veces con diferentes nombres
|
||||
// 2- Imprime algunos mensajes usando esas importaciones
|
||||
//
|
||||
// SALIDA ESPERADA
|
||||
// hello
|
||||
// hey
|
||||
// hi
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// ?
|
||||
// ?
|
||||
// ?
|
||||
|
||||
func main() {
|
||||
// ?
|
||||
// ?
|
||||
// ?
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// Licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
// Para más tutoriales : https://learngoprogramming.com
|
||||
// Clases particulares : https://www.linkedin.com/in/inancgumus/
|
||||
// Sigueme en twitter: https://twitter.com/inancgumus
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
f "fmt"
|
||||
|
||||
fm "fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("hello")
|
||||
f.Println("hey")
|
||||
fm.Println("hi")
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
1. **[Usa tus propios paquetes](https://github.com/inancgumus/learngo/tree/master/03-packages-and-scopes/exercises/01-packages)**
|
||||
|
||||
Crea algunos archivos Go y llama sus funciones desde la función main.
|
||||
|
||||
|
||||
2. **[Prueba las funciones](https://github.com/inancgumus/learngo/tree/master/03-packages-and-scopes/exercises/02-scopes)**
|
||||
|
||||
Aprende los efectos del acceso de funciones de paquetes ó Librerias.
|
||||
|
||||
|
||||
3. **[Renombra las importaciones](https://github.com/inancgumus/learngo/tree/master/03-packages-and-scopes/exercises/03-importing)**
|
||||
|
||||
Importa los mismos paquetes usando diferentes nombres.
|
@ -0,0 +1,50 @@
|
||||
## ¿Dónde almacenar los archivos de código fuente que pertenecen a un paquete?
|
||||
1. Cada archivo debe ir a un directorio diferente
|
||||
2. En un solo directorio *CORRECTO*
|
||||
|
||||
|
||||
## ¿Por qué se utiliza una cláusula de paquete en un archivo de código fuente de Go?
|
||||
1. Se usa para importar un paquete.
|
||||
2. Se utiliza para informarle a Go que el archivo pertenece a un paquete *CORRECTO*
|
||||
3. Se usa para declarar una nueva función
|
||||
|
||||
> **1:** `import` declaración hace eso.
|
||||
>
|
||||
>
|
||||
> **3:** `func` declaración hace eso.
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Dónde debería poner el `package clause` en un archivo de código fuente de Go?
|
||||
1. Como primer código en un archivo de código fuente de Go *CORRECTO*
|
||||
2. Como último código en un archivo de código fuente de Go
|
||||
3. Puedes ponerlo en cualquier lugar
|
||||
|
||||
|
||||
## ¿Cuántas veces puede usar`package clause` para un solo archivo de código fuente?
|
||||
1. Una vez *CORRECTO*
|
||||
2. Ninguna
|
||||
3. Varias veces
|
||||
|
||||
|
||||
## ¿Cuál es el uso correcto de`package clause`?
|
||||
1. `my package`
|
||||
2. `package main`
|
||||
3. `pkg main`
|
||||
|
||||
|
||||
## ¿Cual es la correcta?
|
||||
1. Todos los archivos pertenecen al mismo paquete no pueden llamar a las funciones de los demás
|
||||
2. Todos los archivos pertenecen al mismo paquete pueden llamar a las funciones de los demás *CORRECTO*
|
||||
|
||||
|
||||
## ¿Cómo ejecutar varios archivos Go?
|
||||
1. go run *.*go
|
||||
2. go build *go
|
||||
3. go run go
|
||||
4. go run *.go *CORRECTO*
|
||||
|
||||
> **4:** También puede llamarlo como (asumiendo que hay file1.go file2.go y file3.go en el mismo directorio): vaya a ejecutar file1.go file2.go file3.go
|
||||
>
|
||||
>
|
@ -0,0 +1,41 @@
|
||||
## ¿Cuál de los siguientes es un tipo de paquete correcto en Go?
|
||||
* Paquete vacio
|
||||
* Paquete ejecutable *CORRECTO*
|
||||
* Paquete transferible
|
||||
* Paquete de libreria
|
||||
|
||||
## ¿Qué tipo de paquete `go run` puede ejecutar?
|
||||
* Paquete vacio
|
||||
* Paquete ejecutable *CORRECTO*
|
||||
* Paquete transferible
|
||||
* Paquete de libreria
|
||||
|
||||
## ¿Qué tipo de paquete `go run` puede compilar?
|
||||
* Paquete vacio
|
||||
* Paquete temporal
|
||||
* Ambos paquetes ejecutables y de libreria *CORRECTO*
|
||||
* Paquete transferible
|
||||
|
||||
|
||||
## ¿Cuál es un paquete ejecutable?
|
||||
* `package main` con `func main` *CORRECTO*
|
||||
* `package Main` con `func Main`
|
||||
* `package exec` con `func exec`
|
||||
|
||||
## ¿Cuál es un paquete de libreria?
|
||||
* `main package`
|
||||
* `package lib` *CORRECTO*
|
||||
* `func package`
|
||||
* `package main` con `func main`
|
||||
|
||||
## ¿Qué paquete se utiliza para un programa Go ejecutable?
|
||||
* Paquete vacio
|
||||
* Paquete ejecutable *CORRECTO*
|
||||
* Paquete transferible
|
||||
* Paquete de libreria
|
||||
|
||||
## ¿Qué paquete se utiliza para la reutilización y se puede importar?
|
||||
* Paquete vacio
|
||||
* Paquete ejecutable
|
||||
* Paquete transferible
|
||||
* Paquete de libreria *CORRECTO*
|
@ -0,0 +1,132 @@
|
||||
## ¿Qué es una funcion?
|
||||
* Bloque de código ejecutable
|
||||
* La visibilidad de los nombres declarados **CORRECTO**
|
||||
* Determina qué ejecutar
|
||||
|
||||
```go
|
||||
package awesome
|
||||
|
||||
import "fmt"
|
||||
|
||||
var enabled bool
|
||||
|
||||
func block() {
|
||||
var counter int
|
||||
fmt.Println(counter)
|
||||
}
|
||||
```
|
||||
|
||||
## ¿Qué nombre a continuación tiene la fuincion del paquete(libreria)?
|
||||
1. awesome
|
||||
2. fmt
|
||||
3. enabled **CORRECTO**
|
||||
4. counter
|
||||
|
||||
> **3:** Eso es correcto.`enabled` enabledestá fuera de cualquier función, por lo que es un nombre de ámbito de paquete. La funcion `block()` también tiene el alcance del paquete; también está fuera de cualquier función.
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Qué nombre a continuación tiene la funcion del archivo?
|
||||
1. awesome
|
||||
2. fmt **CORRECTO**
|
||||
3. enabled
|
||||
4. block()
|
||||
5. counter
|
||||
|
||||
> **2:** Eso es correcto. Los nombres de los paquetes importados tienen un ámbito de archivo. Y solo se pueden usar dentro del mismo archivo.
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Qué nombre a continuación está en el alcance de la función block ()?
|
||||
1. awesome
|
||||
2. fmt
|
||||
3. enabled
|
||||
4. block()
|
||||
5. counter **CORRECTO*
|
||||
|
||||
> **5:** Eso es correcto. `counter` se declara dentro de la funcion `block()` por lo que está en el alcance del bloque func. Fuera de la funcion `block()`, otro código no puede verlo.
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Puede `block()` ver el nombre `enabled`?
|
||||
1. Sí: está en el alcance del paquete **CORRECTO**
|
||||
2. No: está en el alcance del archivo
|
||||
3. No: está en el alcance del bloque de block ()
|
||||
|
||||
> **1:** Todo el código dentro del mismo paquete puede ver todos los demás nombres declarados a nivel de paquete.
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Pueden otros archivos en el paquete `awesome` ver el nombre de `counter`?
|
||||
1. Si
|
||||
2. No: está en la funcion del paquete
|
||||
3. No: está en la funcion del archivo
|
||||
4. No: está en la funcion del block() **CORRECTO**
|
||||
|
||||
> **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 funcion `block()` puede verlos (Solo hasta cierto punto. Por ejemplo: Dentro del bloque, el código solo puede ver las variables declaradas antes).
|
||||
>
|
||||
|
||||
|
||||
## ¿Pueden otros archivos en el paquete `awesome` ver el nombre de`fmt` ?
|
||||
1. Si
|
||||
2. No: está en la funcion del paquete
|
||||
3. No: está en la funcion del archivo **CORRECTO**
|
||||
4. No: está en la funcion del bloque()
|
||||
|
||||
> **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.
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Qué sucede si declaras el mismo nombre en el mismo ámbito que este?
|
||||
```go
|
||||
package awesome
|
||||
|
||||
import "fmt"
|
||||
|
||||
// declared twice in the package scope
|
||||
var enabled bool
|
||||
var enabled bool
|
||||
|
||||
func block() {
|
||||
var counter int
|
||||
fmt.Println(counter)
|
||||
}
|
||||
```
|
||||
1. El nombre recién declarado prevalecerá sobre el anterior.
|
||||
2. No puedo hacer eso. Ya se ha declarado en la funcion del paquete. *CORRECTO*
|
||||
3. No puedo hacer eso. Ya se ha declarado en la funcion del archivo.
|
||||
|
||||
> **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?
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
## ¿Qué sucede si declaras el mismo nombre en otro ámbito como este?:
|
||||
```go
|
||||
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. El nombre recién declarado prevalecerá sobre el anterior. *CORRECTO*
|
||||
2. No puedo hacer eso. Ya se ha declarado en la funcion del paquete.
|
||||
3. No puedo hacer eso. Ya se ha declarado en la funcion del archivo.
|
||||
|
||||
> **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 funcion `block()`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.
|
||||
>
|
||||
>
|
Reference in New Issue
Block a user