Programas de la línea de comandos, Captura de datos

¿Cómo capturar valores en la línea de comandos con Go?

En ocasiones existen datos que a través del programa terminan siendo distintos a lo que se esperaba, ya sea porque se capturaron de forma incorrecta o porque se realizó alguna operación sobre ellos.

Para capturar valores datos desde la línea de comando podemos utilizar la librería bufio. Para ello creamos un nuevo reader.

reader := bufio.NewReader(os.Stdin)

Y podemos ir capturando los valores en variables.

variable, _ := reader.ReadString('\n')

Para utilizar ReadString es importante hacer notar que se debe especificar el limitador en forma de byte, en este caso una nueva linea, y por ende se usan las comillas simples. Esta instrucción también pone en pausa el programa hasta que se ingresa el valor.

El ejemplo completo luciría así…

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Printf("Ingresa tu nombre: ")
    nombre, _ := reader.ReadString('\n')
    nombre = strings.Replace(nombre, "\n", "", -1)
    fmt.Printf("Ingresa tu edad: ")
    edad, _ := reader.ReadString('\n')
    edad = strings.Replace(edad, "\n", "", -1)
    fmt.Println("-------------")
    fmt.Println("Nombre:", nombre)
    fmt.Println("Edad:", edad)
    fmt.Println("-------------")
}

El resultado luce algo así.

Ingresa tu nombre: Javier
Ingresa tu edad: 33
-------------
Nombre: Javier
Edad: 33
-------------

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios