Introducción al lenguaje de programación Go (Golang)steemCreated with Sketch.

in #cervantes6 years ago (edited)

logo de go
Wikipedia

Saludos, Steemeans. Ha pasado aproximadamente una semana desde mi última publicación de la serie dedicada al lenguaje Go, si aún no lo lees, te invito a hacer clic aquí. En esta ocasión haré un pequeña introducción a este interesante lenguaje de programación, comencemos con una cita a la siempre útil wikipedia.

Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google, y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Actualmente está disponible en formato binario para los sistemas operativos Windows, GNU/Linux, FreeBSD y Mac OS X, pudiendo también ser instalado en estos y en otros sistemas con el código fuente.

Características principales

  • Está inspirado en el lenguaje C
  • Es concurrente
  • Soporta la orientación a objetos aunque de una manera bastante particular
  • Es de tipado estático
  • Es compilado
  • Es OpenSource
  • Desarrollado por Google
  • Posee recolector de basura

Como pudieron leer, este lenguaje se inspira en C, por lo que los progrmadores que estén familiarizados con dicho lenguaje se sentirán a gusto en Go, admito que no es mi caso pero aún así es fácil comenzar con él. Aunque C no es un lenguaje orientado a objetos Go si lo es, pero lo hace de una manera ligeramente diferente a otros lenguajes populares, como Java o C#. A pesar de ser un lenguaje compilado y de tipado estático posee características que lo hacen parecer interpretado y de tipado dinámico, posiblemente sea debido a mi background pero me recuerda mucho a Python.

La hora del código

Estructura básica de un programa en Go

package main  // Nombre del paquete

import "fmt"  // Importando paquete

// Función principal de cualquier programa en Go
func main() {
    fmt.Println("Go es genial")  // Imprimiendo por consola
}



Como pueden ver, todo programa en Go debe pertenecer a un paquete, el paquete main es especial, la ejecución de los programas inicia en este paquete. Por convención el nombre del paquete debe coincidir con el nombre de la carpeta que lo contiene, puedes crear todos los paquetes que necesites y llamarlo según lo requieras como ocurre con los módulos/paquetes en otros lenguajes, para este fin se emplea la palabra reservada import seguida del nombre del paquete. Por otro lado, la función main también es especial, esta se ejecutará automáticamente al correr el programa.

Variables en Go

package main

import "fmt"

func main() {
    var estatura float32  // Número real
    var edad int              // Número entero
    var activo bool         // Booleano
    var nombre string     // Cadena de texto

    fmt.Println("Variables")
    fmt.Println("estatura:", estatura)
    fmt.Println("edad:", edad)
    fmt.Println("activo", activo)
    fmt.Println("nombre", nombre)

}



Go tiene una amplia variedad de tipos de variables, aquí sólo les muestro las básicas, si desean profundizar en el tema los invito a revisar la documentación, conocer los tipos de variables es fundamental para optimizar los programas, nos permite reservar el espacio en memoria adecuado según la necesidad. Ahora, si observan detenidamente el fragmento de código anterior, notaran que las variables se declaran con la palabra reservada var, seguidas del identificador de dicha variable y posteriormente el tipo de dato, aclaro que no es la única forma de declarar una variable, posteriormente les mostraré otras opciones. Lo otro que quizás notaron es que las estoy mandando a imprimir, pero nunca les dí un valor, es probable que piensen que esto generaría un error, o retornaría alguna variable vacía o indefinida, este no es el caso, Go tiene valores iniciales para cada tipo de variables, por ejemplo: una cadena vacía para las string, 0 para los números, false para los booleanos, es importante tener eso en cuenta.

package main

import "fmt"

func main() {
    var estatura float32 = 1.78 // Asignando valor al declarar
    var edad = 26               // Infiriendo tipo de dato de la asignación
    var activo bool             // Declaración tradicional
    activo = true               // Posterior asignación de valor
    nombre := "Orlando"         // Declaración corta

    fmt.Println("variables")
    fmt.Println("edad:", edad)
    fmt.Println("estatura:", estatura)
    fmt.Println("nombre", nombre)
    fmt.Println("activo", activo)
}



Existen diferentes maneras de declarar las variables, como pueden ver, es posible asignar un valor en al momento de declarar la variable, también puede omitirse el tipo si el compilador es capaz de inferirlo, aunque en ocasiones es recomendable ser explícito, también puede solo declararse y posteriormente asignarle un valor, y, mi opción favorita, la declaración corta, con esta última es posible omitir la palabra reservada var y el tipo de variable, este se infiere del elemento que se esté asignando. Es importante resaltar que la declaración corta requiere usar := y que solamente puede usarse dentro de funciones, en el ámbito global es necesario el uso de var

Funciones en Go

En este punto deben haber visto la función main hasta el cansancio, además de la función Println perteneciente al paquete fmt. Ahora hablemos de las funciones que podemos declarar.

package main

import "fmt"

func saludar(nombre string, edad int) string {
    return fmt.Sprintf("Hola, mi nombre es %s y tengo %d años", nombre, edad)
}

func main() {
    fmt.Println(saludar("Orlando", 26))
}



Nótese un par de cosas: No soy muy creativo para los ejemplos, las funciones se declaran comenzando con la palabra reservada func, pueden recibir argumentos, los cuales requieren ser declarados entro de los paracentesis de la función junto a su tipo, de igual forma, en caso de retornar un valor (o varios), se debe especificar el tipo que este tendrá después del paréntesis de cierre y antes de la llave de apertura. El valor de retorno, como en la mayoría de los lenguajes de programación se especifica por medio de la palabra reservada return.

Sinceramente he dejado mucho material por fuera, muchos tipos de variables, más características de las funciones entre otras cosas, sin embargo, me parece que hasta este punto se satisface el objetivo de esta publicación, ser una pequeña introducción al lenguaje. Continuaré realizando publicaciones sobre el tema, pero si desean profundizar, les recomiendo el gotour en el sitio oficial del lenguaje, así como la documentación del mismo, que la verdad es fácil de seguir y eso se agradece. Finalmente, también les comparto este tutorial del canal de GygaCode en Youtube. Saludos y hasta la próxima.

Sort:  

Este post fue votado por la comunidad y trail @developspanish, comunidad encargada de curar a los programadores, traductores de software y bloggers de informática y tecnología de habla hispana.

¿Quieres recibir mejores recompensas en tus post de informática, tecnología o programación, ayúdanos delegando algo de SP:
1 SP, 5 SP, 10 SP