Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Analizando un programa en Go

5/42
Recursos

Aportes 34

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 := “Hola” // 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.

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")
}

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. x2

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

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 “hola” es diferente a la funcion “Hola”?

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