Ejercicio de mecanografía: Programación en lenguaje Go
Consejos para este ejercicio
Ejercicio de mecanografía: Programación en lenguaje Go
La mecanografia es importante en la programación. Eres más eficiente utilizando técnicas de escritura rápida para escribir código en el lenguaje de programación Go.
Programación en Go y mecanografia
Programar en Go y la mecanografía se relacionan de forma natural. Go tiene reglas de sintaxis estrictas y caracteres especiales que pueden ser difíciles de escribir con rapidez. En Go, un error en una llave o en un operador provoca inmediatamente un error de compilación.
¿Qué caracteriza la sintaxis de Go?
Go es un lenguaje compilado (ingl. compiled language) con estilo limpio y minimalista. El código siempre empieza con una declaración package. Las importaciones se agrupan en bloques. Las funciones se declaran con func y usan llaves {}. La indentación no es opcional: Go fuerza el formato con go fmt. No se escriben puntos y coma, pero el compilador los inserta al final de las líneas.
package main
import "fmt"
func main() {
fmt.Println("Hello, Go")
}
Caracteres importantes
En Go se usan constantemente llaves {}, paréntesis (), corchetes [], comillas " y backticks `, además del operador := y el operador de canal <-.
Variables y declaraciones
Go distingue entre var y :=. Este último combina dos símbolos y es parte esencial de la escritura diaria en Go.
var count int = 10
message := "typed correctly"
Estructuras de control
Go usa if, for y switch. No hay while. Hay que prestar atención a ==, !=, <, > y ++.
for i := 0; i < 5; i++ {
if i%2 == 0 {
fmt.Println("even")
}
}
Funciones y múltiples retornos
Las funciones pueden devolver varios valores. Esto significa más comas en listas de retorno y asignaciones.
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("division by zero")
}
return a/b, nil
}
result, err := divide(10, 2)
Slices, maps y literales compuestos
Los corchetes [] y llaves {} se ven mucho en Go. Los mapas usan dos puntos : entre clave y valor.
nums := []int{1, 2, 3}
scores := map[string]int{"alice": 5, "bob": 7}
Structs y métodos
El tipo struct agrupa datos. Los métodos requieren un receiver y se llaman con el punto ..
type User struct {
Name string
}
func (u User) Greet() string {
return "Hello " + u.Name
}
u := User{Name: "A"}
fmt.Println(u.Greet())
Interfaces
Las interfaces se cumplen de forma implícita, sin palabra clave como implements.
type Stringer interface {
String() string
}
Concurrencia y canales
El operador de canal <- es característico de Go. Se usa para enviar ch <- valor y recibir valor := <-ch.
ch := make(chan int)
go func() { ch <- 42 }()
value := <-ch
Cadenas y runas
Go usa comillas dobles para cadenas normales, backticks para raw strings y comillas simples para runas.
text := "normal string"
raw := `path\to\file`
r := 'a'
Indentación y formato
Go impone un estilo único. El uso de llaves y saltos de línea debe ser exacto. Un error común es poner Enter después de return.
Resumen
En Go los caracteres claves son llaves {}, paréntesis (), corchetes [], el operador := y el operador de canal <-. Dominarlos permite escribir Go con rapidez y precisión.