Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Go es un lenguaje de programación de alto nivel, compilado y multiplataforma, creado por tres programadores de Google, Robert
Griesemer, Rob Pike y Ken Thompson con la idea de que sea un lenguaje de programación optimizado y más sencillo.
Un proyecto modesto se convirtió en un ambicioso propósito cuyo desarrollo fue impulsado por Google, que dispuso todos los recursos
necesarios para el desarrollo.
La primera versión de Go se publicó en 2012, desde ese momento su crecimiento en la comunidad no para de aumentar.
La sintaxis de Go tiene mucha semejanza a la del lenguaje C, el propósito de este lenguaje de programación es que sea, tan rápido como
C y tan sencillo de leer y escribir como Python. Golang o Go es un lenguaje compilado y esto hace que sea más efectiva. El lenguaje
también cuenta con un recolector de basura automático o nativa (Garbage Collector o GC), que aporta a gestionar con eficiencia el
manejo de memoria.
Concurrencia
Una de las principales funciones de Golang es que maneja las múltiples tareas de forma concurrente, es decir, que el procesador divide
el trabajo en múltiples hilos y a cada uno le dedica un tiempo en milisegundos acelerando el tiempo de ejecución en cada tarea sin
necesidad de realizar configuraciones adicionales ya que Golang lo traen en sus librerías preinstaladas.
La manera como Golang trabaja esto es a través de Goroutines y Canales. Puedes tener múltiples Goroutines por canal y transportar el
Goroutine de un canal a otro. Un excelente uso de Goroutines es al momento de trabajar transferencia de datos en tiempo real desde un
cliente a otro, como por ejemplo un chat o un sistema de ubicación en tiempo real.
Go es un lenguaje que es más utilizado en el desarrollo web backend, por manejar tareas pesas y aplicar la concurrencia. Go se utiliza el
los siguientes campos.
Ejemplo de Go
package main
import "fmt"
func main() {
fmt.Println("Hola Mundo")
}
Lenguaje del código: Go (go)
Instalar Go
Para empezar a codificar con Go se nesesita dos cosas
Un editor de código o de texto como VS Code, para escribir codigo en Go o tambien IDE.
Un compilador para compilar el codigo de Go a codigo maquina para ejecutar en la computadora
En la pagina oficial de Go(Golang), podemos encontrar la herramienta de desarrollo de Go el cual trae todas las
herramietas nesesarias para construir nuestra aplicación como tambien el compilador.
Instalar Go en Windows
Para instalar Go descargar el archivo de instalación de la página https://golang.org/dl/ y tambien puedes seguir la
guia de la instalación desde la pagina oficial de Golang https://golang.org/doc/install para diferentes sistemas
operativos.
En el siguiente video tutorial aprenderas a instalar Go, VS Code y configurar tu espacio de trabajo con Go.
C:\User\roel1\go\
.bin
.pkg
.src
Lenguaje del código: Bash (bash)
Instalar Go en Linux
Para instalar Go descargar el archivo de instalación de la página https://golang.org/dl/ y tambien puedes seguir la
guia de la instalación desde la pagina oficial de Golang https://golang.org/doc/install para diferentes sistemas
operativos.
Descargar el archivo para linux luego realiza la instalación con indica en la pagina, para darle permiso como
administrado usa sudo.
En el siguiente video tutorial aprenderas a instalar Go, VS Code y configurar tu espacio de trabajo con Go en
Linux.
Abre el archivo oculto en la dirección de usuario que es .bashrc abre con algun editor y configura los siguientes
variables de entorno al final de archivo.
export GOROOT=/usr/local/go
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/home/alexroel/workspace/go
export GOBIN=$GOPATH/bin
Lenguaje del código: Bash (bash)
Intalar Go en Mac
Descargar Go: Para descargar Go se derige a la página oficial de Golang https://golang.org/dl/ y escoje para
sistema operatico mac.
Instalar Go: Cuando termine de descargar puede pasas a inatalar ejecutando el archivo descargado, luego nex o
continue y install.
Una vez descargado el paquete, debes abrirlo y luedo de seguir los pasos del asistente instalarás Go en tu mac
que por defecto se instalará en la siguiente ruta /usr/local/go
Si todo ha salido bien, al abrir una terminal y ejecutar go version debería imprimirte en consola la versión de
Go que acabas de instalar.
Una vez tengas instalado Go, el paso siguiente es crear la carpeta go, preferiblemente en tu $HOME.
Una vez creada, debes igualmente crear dentro de ella las siguientes tres carpetas: pkg, src y bin.
Para finalizar, el paso siguiente es crear las variables de entorno. Esto dependerá mucho de cuál Shell estés
utilizando. En el curso estaremos usando Bash Shell, en este caso abrimos el archivo ~/.bash_profile y allí
escribimos lo siguiente al final del archivo:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
Lenguaje del código: Bash (bash)
Primero tenemos que definir el paquete main que no permitirá ejecutar el archivo
Para mostrar datos por pantalla o consola importar el paquete fmt
Para ejecutar nuestro código se tiene que definir la función main y dentro de esta función va todo los
códigos que vas a ejecutar.
Para mostrar un Hola mundo usamos el paquete fmt y su método Println como se muestra en el siguiente
ejemplo.
package main
import "fmt"
func main() {
fmt.Println("Hola Mundo")
}
Lenguaje del código: Go (go)
Para ejecutar este archivo con Go, podemos usar los comando go run nombre_archivo.go el cual compila
internamente y ejecuta y te devuelve le resultado.
go run hola.go
Hola Mundo
Lenguaje del código: Shell Session (shell)
Pero para la produccion tendrias que compilar tu proyecto ya el comando go run esta para modo desarrollo, para
compilar el proyecto se usa el comando go build nombre-archivo.go. esto genera un archivo conpilado que
seria el ejecutable de nuestra aplicación.
C:\Users\roel1\go\src\tutorial-go>dir
Directorio de C:\Users\roel1\go\src\tutorial-go
Para ejecutar el archivo compilado que en este caso es con extención .exe solo pasas a ejecutar directemante el
erchivo y tendremos el resutaldo de la aplicación.
C:\Users\roel1\go\src\tutorial-go>hola.exe
Hola Mundo
Comentarios en GO
Un comentario es un texto, que es ignorado al momento de ejecutar nuestra aplicación, los comentarios se usas para explicar el código y
hacerlo más legible, estos comentarios también se puedes usar para evitar la ejecución de una línea de código o bloque de código.
Los comentarios de una sola línea comienzan con dos barras diagonales //, todo texto que este escrito después de estas dos barras
diagonales, el compiladore de Go lo ignora y esto solo sirve para el desarrollador o desarrolladores.
//Esto es un comentario
package main
import "fmt"
func main() {
//Este es otro comentario
fmt.Println("Hola Mundo")
}
Lenguaje del código: Go (go)
El siguiente ejemplo muestra como podemos aplicar los comentarios de línea después de una línea de código, y así podemos dejar
alguna explicación corta de esa línea de código.
//Función Principal
func main() {
fmt.Println("Hola Mundo") //Emprime hola mundo
}
Lenguaje del código: Go (go)
Comentarios de Bloque en Go
Los comentarios de bloque o de varias líneas comienza con barra diagonal asterisco /* y terminan con asterisco barra diagonal */,
cualquier texto o código dentro de esta serán ignorados por el compilador.
package main
import "fmt"
func main() {
/* fmt es una libreria de salida y entrada de datos
Println es una función que muestra datos de salida*/
fmt.Println("Hola Mundo")
}
Lenguaje del código: Go (go)
En el siguiente ejemplo veremos como poder comentar una línea de código, el cual será ignorado por el compilador.
package main
import "fmt"
func main() {
fmt.Println("Hola Mundo")
//fmt.Println("Esta linea no sera ejecutado")
}
Lenguaje del código: Go (go)
Variables en Go
Las variables son contenedores para almacenar valores de diferentes tipos de datos, en Go existen diferentes tipos
de variable. Go es un lenguaje tipado y por eso tenemos que definir variables para cada tipo de dato.
package main
import "fmt"
func main() {
var name string = "Alex"
var age int = 26
fmt.Println(name)
fmt.Println(age)
}
Lenguaje del código: Go (go)
En Go, se inicializan todas las variables. Entonces, si defines unas variables sin valor, su valor se establecerá con
le valor predeterminado de su tipo.
Es importante saber que con Go, los variables no contienen valores nulos u otro tipo de valor, cuando defines una
variable sin inicializar. Por que en Go todas se inicializan automáticamente.
package main
import "fmt"
func main() {
var name string // Valor inicial ""
var age int // Valor inicial 0
var size float64 // Valor iniciar 0
var itsAlive bool // Valor iniciar false
fmt.Println(name)
fmt.Println(age)
fmt.Println(size)
fmt.Println(itsAlive)
}
Lenguaje del código: Go (go)
Luego de definir las variables podemos asignar otros valores, para modificar el valor inicial.
package main
import "fmt"
func main() {
var name string // Valor inicial ""
var age int // Valor inicial 0
var size float64 // Valor iniciar 0
var itsAlive bool // Valor iniciar false
name = "Alex"
itsAlive = true
fmt.Println(name)
fmt.Println(age)
fmt.Println(size)
fmt.Println(itsAlive)
}
Lenguaje del código: Go (go)
Para eso podemos hacer de dos formas, la primera forma es usando la palabra clave var como se muestra en el
siguiente ejemplo.
package main
import "fmt"
func main() {
var name = "Alex"
var age = 26
fmt.Println(name)
fmt.Println(age)
}
Lenguaje del código: Go (go)
La segunda forma es usado el operador := como se muestra el siguiente ejemplo, este operador solo se usa al
momento de definir, para modificar su valor solo escribes el identificador y el operador igual =.
package main
import "fmt"
func main() {
name := "Alex"
age := 26
name = "Roel"
fmt.Println(name)
fmt.Println(age)
}
Lenguaje del código: Go (go)
package main
import "fmt"
func main() {
age := 26
fmt.Println(name)
fmt.Println(age)
}
Lenguaje del código: Go (go)
package main
import "fmt"
func main() {
//Sin asignar nigun valor
var a, b, c int
//Asignado un valor
var x, y = 12, 23
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(x)
fmt.Println(y)
}
Lenguaje del código: Go (go)
package main
import (
"fmt"
)
func main() {
var (
name string = "Alex"
age = 26
size float64
itsAlive bool
)
fmt.Println(name)
fmt.Println(age)
fmt.Println(size)
fmt.Println(itsAlive)
}
Lenguaje del código: Go (go)
Palabras reservadas de Go
break default funct interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
Constantes en Go
Si una variable debe tener un valor fijo que no se pueda cambiar o modificar, puedes utilizar los constantes. Los
constantes se definen con la palabra clave const. Con esto podemos decir que un constante es inmutable y de
solo lectura.
La sintaxis de como se define una constate es parecida a las variables normales, la diferencia es que en ves de
usar var usas const.
Definición de un constante
El nombre de los constantes sigue las mismas reglas que las de variables
De costumbre el nombre de las constantes va de pura mayúscula para diferenciar de las variables.
Las constantes pueden definirse dentro y fuera de las funciones.
En Go hay dos tipos de constantes, las escritas y sin tipo de dato.
En el siguiente ejemplo se muestra como se defines las constantes de dos formas, dentro y fuera de la función.
package main
import "fmt"
//Definir un constante
const PI = 3.141592 //Constante sin tipo
func main() {
fmt.Println(PI)
fmt.Println(A)
}
Lenguaje del código: Go (go)
package main
import "fmt"
const (
A = 1
HOLA = "Hola"
C = true
)
func main() {
fmt.Println(A)
fmt.Println(HOLA)
fmt.Println(C)
}
Tipos de Datos en Go
Los tipos de datos son importantes en la programación, el tipo de dato especifica el tamaño y tipo de valor de una
variable. Go es estáticamente tipado, lo que significa que una variable se define para guardar u solo tipo de dato.
package main
import "fmt"
func main() {
var name string = "Alex" // Cadena
var age int = 26 // Número entero
var size float64 = 1.67 //Número flotante
var itsAlive bool = true // Booleano
fmt.Println(name)
fmt.Println(age)
fmt.Println(size)
fmt.Println(itsAlive)
}
Lenguaje del código: Go (go)
Podemos definir variables para que pueda almacenar números positivos o negativos con cantidades limitadas.
int – 32 o 64 bits
rune – 32-bits (-2147483648 a 2147483647)
int8 – 8-bits (-128 a 127)
int16 – 16-bits (-32768 a 32767)
int32 – 32-bits (-2147483648 a 2147483647)
int64 – 64-bits (-9223372036854775808 a 9223372036854775807)
package main
import "fmt"
func main() {
var a int8 = 127 // Rango de -128 a 127
var b rune = 455 // Rango de -2147483648 a 2147483647
fmt.Println(a)
fmt.Println(b)
}
Lenguaje del código: Go (go)
package main
import "fmt"
func main() {
var a byte = 255 // Rango de 0 a 255
var b uint = 455 // Solo positivos
fmt.Println(a)
fmt.Println(b)
}
Lenguaje del código: Go (go)
package main
import "fmt"
func main() {
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
Lenguaje del código: Go (go)
Salida de Datos en Go
Para la salida de datos, usamos las funciones del paquete fmt, el paquete fmt es amplia, puedes echar un vistazo
la documentación oficial https://pkg.go.dev/fmt.
Para mostrar datos por pantalla o la terminal podemos usar muchas de sus funciones, dependiendo para que lo
necesitemos, los más básicos podemos explorar por ahora es son tres:
A estas funciones podemos inviar que nos imprima muchos datos al mismo tiempo, a esto se llama
concatenación, podemos enviar diferentes tipos de datos para que imprima por consola, hasta operaciones
aritméticas o concatenaciones con signo +.
package main
import "fmt"
func main() {
fmt.Print("Hola")
fmt.Print("Mundo")
}
Lenguaje del código: Go (go)
HolaMundo
Lenguaje del código: Shell Session (shell)
Concatenacion y Println()
Para imprimir varios datos en la consola en solo print o println podemos concatenar con coma o con signo +,
pero más fácil de hacer ser con coma, ya que te genera automáticamente espacio entre los datos, como se muestra
en el siguiente ejemplo.
package main
import "fmt"
func main() {
}
Lenguaje del código: Go (go)
HolaMundo
Hola Mundo
Lenguaje del código: Shell Session (shell)
Para concatenar el uso de coma es recomendable ya que si usas el signo +, solo servirá para cadenas pero no para
números, porque con los números se realizara una operación aritmética.
package main
import "fmt"
func main() {
var a, b = 10, 20
}
Lenguaje del código: Go (go)
30
10 20
Lenguaje del código: Shell Session (shell)
\n : Es una carácter especial que se aplica dentro de comillas y realiza un salto de línea.
%v : En esta posición podemos imprimir cualquier dato que ese encadenara al final.
package main
import "fmt"
func main() {