Disfruta de nuestro contenido y eventos por un a帽o a un precio especial

Antes: $179

Currency
$149/a帽o
隆Suscr铆bete!

馃敟 Te quedan 馃敟

1D
8H
33M
39S

Analizando un programa en Go

5/42
Recursos
Transcripci贸n

Aportes 36

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

C贸digo que utiliza el profesor en la clase.

package main //package name
// package	otroPaquete 

import "fmt" // librer铆as necesarias para importar el paquete

func main() {
	// Variables
	var mensaje string = "Hola mundo"
	easyMessage := "Hola mundo usando :="
	fmt.Println(mensaje)
	fmt.Println(easyMessage)

	// Puedes comentar usando "//"

	// float numbers
	a := 10.
	var b float64 = 3
	fmt.Println(a / b)


	//integer numbers
	var c int = 10
	d := 3
	fmt.Println(c / d)

	// boolean
	var x bool = true
	y := false
	fmt.Println(x || y)
	fmt.Println(x && y)
	fmt.Println(!x)

	//L贸gica privada
	privada()

	//L贸gica Publica
	Publica()

	//Funci贸n "defer"
	printHelloWorld()
}

// func types
func privada() {
	fmt.Println("Ejecutar l贸gica que no necesita ser exportada (pertenece solo a este paquete)")
}

func Publica() {
	fmt.Println("L贸gica que quiero exportar a otros paquetes")
}

// defer
func printHelloWorld() {
	defer fmt.Println("World!")
	fmt.Println("Hello")

	fmt.Println("defer ejecuta un fragmento de c贸digo hasta que la funci贸n haya terminado")
}

Adicional quiero comentar que cuando vamos a declarar p煤blica una funci贸n es necesario documentarla en la l铆nea superior con un comentario.

al igual que en las funciones, si se desea exportar una variable, esta tambien debe ser en mayuscula inicial.

La combinaci贸n de caracteres := le dice a go que infiera el tipo de dato de esa variable

a := 鈥淗ola鈥 // var a string = "Hola"
b:= 5 // var b int = 5

buena explicacion sobre las cosas de go, falto sobre los comentarios que te pide go cuando usas una variable o metodo exportable.

package 鈥渃ualquiernombre鈥 Es la forma en la que distribuimos o almacenamos c贸digo en Go.
import Sirve para importar librer铆as necesarias para ejecutar el programa.
func main() {} Es el punto de inicio de todo el c贸digo, es todo lo que se ejecuta. x2

la linea 14 tiene un error, se soluciona casteando cualquier de las variables del cociente.

fmt.Println(float64(a) / b)

Aqu铆 el linter de Go que se instala en la extensi贸n de Go de VS Code nos sugiere que es buena pr谩ctica comentar las funciones que son exportadas as铆:

// Publica : esta funcion imprime un mensaje
func Publica() {
	fmt.Println("Esta funcion es visible dentro y FUERA del package main")
}

esta es la clase que mas me gusta, es diferente y es una buena forma de comprender un leguaje cuando no lo conoces, analizando y entendiendo que hizo alguien que si sabe usarlo

package "cualquiernombre" Es la forma en la que distribuimos o almacenamos c贸digo en Go.
import Sirve para importar librer铆as necesarias para ejecutar el programa.
func main() {} Es el punto de inicio de todo el c贸digo, es todo lo que se ejecuta.

Maravillosa clase鈥

En esta p谩gina pueden encontrar un poco sobre defer y como utilizarlo:
http://goconejemplos.com/defer

con este curso aprede uno mas , y muy buena explicacion

Excelente

Me gustan las clases asi en un curso de programacion, es como un preview que te da muchas luces de lo que veras luego

Porque usar DEFER

  1. Para cerrar o liberar recursos
  2. Permite tener multiples returns y de todos modos ejecutar al final
  3. Se pueden agregar mas de un DEFER y se ejecutan en orden inverso al agregado

Ejemplos de DEFER

Excelente

Tambi茅n podemos declarar una variable Sin inicializarla

var cuentas int

comandos b谩sicos

<h3>compilar</h3>

este comando compila nuestro c贸digo a c贸digo maquina. esto genera un archivo binario con el mismo nombre.

go build <FILE>
<h3>ejecutar</h3>

este comando compila, ejecuta y borra el compilado, todo en uno solo.

go run <FILE>
<h3>comentarios</h3>

los comentarios van con el simbolo // para una sola linea o con /* */ si se desea comentar varias lineas.

// esto es un comentario

/*
otro tipo de comentario
de varias linias
*/

estructura

//package name
package main

// librer铆as necesarias para importar el paquete
import "fmt"

// para ejecutar un programa en go se necesita una funcion main
func main() {
.
.
.
}

variables

<h3>string</h3>
var mensaje string = "Hola mundo"
easyMessage := "Hola mundo usando :="

solo con tener comillas "" despues de los :=, ya interpreta que es un string

<h3>integer</h3>
var c int = 10
d := 3

solo con tener un numero despues del :=,ya interpreta que es un integer

<h3>Float</h3>
var b float64 = 3
a := 10.

solo con tener un punto. despues del numero, ya interpreta que es un float

<h3>boolean</h3>
var x bool = true
y := false

solo con tener un trueo false despues del :=, ya interpreta que es un boolean

Imprimir

para imprimir, go necesita importar fmt

import "fmt" 
func Imprimir() {
	fmt.Println(<VARIABLE>)
}

Permisos

go permite diferenciar si una variable o funcion es publica al poner la primera letra en MAYUSCULA, si esta en minuscula es privada

// comienza con minuscula es privad
func privada() {
	fmt.Println("funcion privada")
}

// comienza con MAYUSCULA es publica
func Publica() {
	fmt.Println("funcion publica")
}

Operadores especiales

<h3>defer</h3>

La funcion defer lo que hace es diferir la ejecucion de ese fragmento de codigo despues de que se ejecuto toda la funcion

func main(){
    //Funci贸n "defer"
        printHelloWorld()

}

// defer
func printHelloWorld() {
	defer fmt.Println("World!")
	fmt.Println("Hello")
}
/*
Esta ultima imprimira lo siguiente:

Hello
World!
*/

porque true y false no son palabras reservadas del lenguaje?

vamos a analizarlo

No me qued贸 claro lo de que la empezar el nombre con mayuscula o minuscula 馃槙

declaraciones explicita y declaraciones no explicita

:= golang infiere el tipo de dato de la variable

para exportar un funcion tenemos que colocar una letra mayuscula

defer indicando que este pedazo de codigo debe ser ejecutado hast que la funcion termine

Para indicar que una funci贸n es privada se debe declarar con min煤sculas y para p煤blicas se debe iniciar con Letra may煤scula.

defer parace inutil o me equivoco?

Hola. Super esta lecci贸n. Me surge una pregunta. Comentas que la diferencia entre funciones publicas o privadas es la primera letra del nombre de la funcion. esto significa que:

  • los nombres de las funciones (o en general) son case sensitive? es decir, la funcion 鈥渉ola鈥 es diferente a la funcion 鈥淗ola鈥?

Super go 馃槂

Probando 馃槂

Otras cosas que podemos analizar en GO
//Strings

str1 := "Hello"
str2 := `Miltiline
string`

//Numbers

num := 3 //int
num := 3. //float64
num := byte('a') // byte (uint8)
var u uint = 7 // uint (unsigned)

//Constants

const Phi = 1.618
const Success = true

Excelente

Declaraciones de variables cortas
Dentro de una funci贸n, la :=declaraci贸n de asignaci贸n corta se puede utilizar en lugar de una vardeclaraci贸n con tipo impl铆cito.

Fuera de una funci贸n, cada declaraci贸n comienza con una palabra clave ( var, func, etc.) por lo que la :=construcci贸n no est谩 disponible.

Si les da error en la funcion Publica deben colocar un comentario
similar a este:
//Publica returns publica