Flags de línea de comandos en Go
El paquete flag declara, parsea y documenta la interfaz.
func parseArgs(args []string) (string, int, bool, []string, error) {
set := flag.NewFlagSet("typestar", flag.ContinueOnError)
set.SetOutput(io.Discard)
lang := set.String("lang", "go", "language to practice")
seconds := set.Int("seconds", 60, "sprint length")
editor := set.Bool("editor", false, "editor mode")
if err := set.Parse(args); err != nil {
return "", 0, false, nil, fmt.Errorf("parse flags: %w", err)
}
return *lang, *seconds, *editor, set.Args(), nil
}
Cómo funciona
- Cada llamada devuelve un puntero al valor parseado.
flag.Argsguarda lo que quedó después de los flags.- Un FlagSet evita que una prueba toque el global.
Palabras clave y builtins usados aquí
boolerrorfuncifintreturnstring
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 466
- Tokens
- 128
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 73 segundos.
Paso 1 de 2 en Programas y logging; paso 14 de 26 en Biblioteca estándar y estructura del proyecto.