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