El programa “Hello, World!” es un clásico y una tradición reconocida en la programación computacional. Se trata de un primer programa sencillo y completo para principiantes y es una buena alternativa para garantizar que su entorno se configure de manera adecuada.
Este tutorial le servirá como guía para crear este programa en Go. Sin embargo, para hacer que el programa sea más interesante, modificará el programa tradicional “Hello, World!” a fin de que solicite al usuario su nombre. Luego usará el nombre en el saludo. Al completar el tutorial, obtendrá un programa que tendrá el siguiente aspecto cuando lo ejecute:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Go!
Antes de comenzar este tutorial, deberá disponer de un entorno de desarrollo local de Go configurado en su computadora. Puede configurarlo a través de uno de los siguientes tutoriales:
Para escribir el programa “Hello, World!”, abra un editor de texto de línea de comandos como nano
y cree un nuevo archivo:
- nano hello.go
Una vez que el archivo de texto se abra en la ventana del terminal, escribirá su programa:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Desglosaremos los diferentes componentes del código.
package
es una palabra clave de Go que define el paquete de código al que pertenece este archivo. Solo puede haber un paquete por carpeta y cada archivo .go
debe declarar el mismo nombre de paquete en la parte superior de su archivo. En este ejemplo, el código pertenece al paquete main
.
import
es una palabra clave de Go que indica al compilador de Go los demás paquetes que quiere usar en este archivo. Aquí, se importa el paquete fmt
que viene con la biblioteca estándar. El paquete fmt
proporciona funciones de formato e impresión que pueden ser útiles en el desarrollo.
fmt.Println
es una función de Go que se encuentra en el paquete fmt
e indica a la computadora que imprima texto en la pantalla.
Se sigue la función fmt.Println
con una secuencia de caracteres, como “Hello, World!”
, escrita entre comillas. Todos los caracteres que se encuentran entre comillas se conocen como cadenas. La función fmt.Println
imprimirá estas cadenas en la pantalla cuando se ejecute el programa.
Guarde y cierre nano
escribiendo CTRL + X
. Cuando se le pregunte si desea guardar el archivo, pulse Y
.
Ahora podrá probar su programa.
Una vez que escriba su programa “Hello, World!”, estará listo para la ejecución. Usará el comando go
, seguido del nombre del archivo que acaba de crear.
- go run hello.go
El programa ejecutará y mostrará este resultado:
OutputHello, World!
Analizaremos lo que realmente sucedió.
Los programas de Go deben compilarse antes de su ejecución. Cuando invoque a go run
con el nombre de un archivo, en este caso hello.go
, el comando go
compilará la aplicación y luego ejecutará el binario resultante. Para los programas escritos en lenguajes de programación compilados, un compilador tomará el código fuente de un programa y generará otro tipo de código de bajo nivel (como el código de máquina) para producir un programa ejecutable.
Las aplicaciones de Go requieren un paquete main
y precisamente una función main()
que sirva como punto de entrada para ellas. La función main
no recibe argumentos ni muestra valores. En lugar de ello, indica al compilador de Go que el paquete debe compilarse como un paquete ejecutable.
Una vez que este se compila, se ejecuta el código ingresando la función main()
en el paquete main
. Ejecuta la línea fmt.Println(“Hello, World!”)
llamando a la función fmt.Println
. El valor de la cadena de Hello, World!
luego se pasa a la función. En este ejemplo, la cadena Hello, World!
también se conoce como argumento porque es un valor que se pasa a un método.
Las citas que están en ambos lados de Hello, World!
no se imprimen en la pantalla porque se utilizan para indicar a Go dónde comienza y termina su cadena.
Siguiendo este paso, creó un programa funcional “Hello, World!” con Go. En el siguiente paso, aprenderá a hacer que el programa sea más interactivo.
Cada vez que ejecuta su programa, produce el mismo resultado. En este paso, puede agregar a su programa la función para que solicite el nombre del usuario. Luego usará el nombre de este en el resultado.
En lugar de modificar su programa existente, cree uno nuevo llamado greeting.go
con el editor nano
:
- nano greeting.go
Primero, añada este código, el cual solicita al usuario que ingrese su nombre:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
}
Una vez más, utilice la función fmt.Println
para imprimir texto en la pantalla.
Añada ahora la línea resaltada para almacenar la entrada del usuario:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
}
La línea var name string
creará una nueva variable usando la palabra clave var
. Se asigna a la variable el nombre name
y pertenece al tipo string
.
A continuación, añada la línea resaltada para capturar la entrada del usuario:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
}
El método fmt.Scanln
indica a la computadora que espere una entrada del teclado que termine con una nueva línea o (\n
), carácter. Esto hace que el programa se detenga, lo cual permite que el usuario introduzca cualquier texto que desee. El programa se reanudará cuando el usuario presione la tecla ENTER
en su teclado. Todas las pulsaciones de teclas, incluida la de la tecla ENTER
, se capturan y se convierten en una cadena de caracteres.
Le convendrá usar esos caracteres en el resultado de su programa, por lo que los guardará escribiéndolos en la variable de cadena llamada name
. Go almacena esa cadena en la memoria de su computadora hasta que el programa termine de ejecutarse.
Por último, añada la siguiente línea resaltada en su programa para imprimir el resultado:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
Esta vez, en lugar de usar de nuevo el método fmt.Println
, empleará fmt.Println
. La función fmt.Printf
toma una cadena y al utilizar verbos especiales de impresión, (%s
), inserta el valor de name
en la cadena. Se requiere esto porque Go no admite la interpolación de cadenas, lo cual le permitiría tomar el valor asignado a una variable y disponerlo dentro de una cadena.
Guarde y cierre nano
presionando CTRL + X
, y presione Y
cuando se le pregunte si desea guardar el archivo.
Ahora ejecute el programa. Se le solicitará su nombre; introdúzcalo y presione ENTER
. Es posible que resultado no sea exactamente el que espera:
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Go!
En lugar de Hi, Sammy! I'm Go!
, hay una salto de línea inmediatamente después del nombre.
El programa capturó todas sus pulsaciones de teclas, incluida la tecla ENTER
que presionamos para indicar al programa que continúe. En una cadena, al presionar la tecla ENTER
se crea un carácter especial que crea una nueva línea. El resultado del programa cumple exactamente con lo que usted indicó; muestra el texto que ingresó, incluida esa nueva línea. No es lo que esperaba del resultado, pero puede corregirlo con funciones adicionales.
Abra el archivo greeting.go
en su editor:
- nano greeting.go
Ubique la siguiente línea en su programa:
...
fmt.Scanln(&name)
...
Añada la siguiente línea justo después de esta:
name = strings.TrimSpace(name)
Esto utiliza la función TrimSpace
, del paquete strings
de la biblioteca estándar de Go, en la cadena que capturó con fmt.Scanln
. La función strings.TrimSpace
elimina todos los caracteres de espacio, incluidas las líneas nuevas, del inicio y del final de una cadena. En este caso, elimina el carácter de nueva línea al final de la cadena que se creó cuando presionó ENTER
.
Para usar el paquete strings
deberá importarlo en la parte superior del programa.
Ubique las siguientes líneas en su programa:
import (
"fmt"
)
Añada la siguiente línea para importar el paquete strings
:
import (
"fmt"
"strings"
)
Su programa ahora contendrá lo siguiente:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
name = strings.TrimSpace(name)
}
Guarde y cierre nano
. Presione CTRL + X
y luego Y
cuando se le solicite guardar el archivo.
Ejecute el programa de nuevo:
- go run greeting.go
Esta vez, después de ingresar su nombre y presionar ENTER
, obtendrá el resultado esperado:
OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Go!
Ahora, contará con un programa de Go que obtiene entradas de un usuario y las imprime de vuelta en la pantalla.
A través de este tutorial, escribió un programa “Hello, World!” que obtiene entradas de un usuario, procesa el producto y muestra el resultado. Ahora que dispone de un programa básico con el que trabajará, intente ampliarlo. Por ejemplo, solicite el color favorito del usuario y haga que el programa diga que su color favorito es el rojo. Puede, incluso, intentar usar esta misma técnica para crear un programa sencillo de Mad-Lib.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.