typestar

Rutas y recorridos en Go

filepath une con el separador correcto y recorre un árbol.

func findGoFiles(root string) ([]string, error) {
    var found []string
    err := filepath.WalkDir(root, func(path string, entry fs.DirEntry,
        err error) error {
        if err != nil {
            return err
        }
        if entry.IsDir() && entry.Name() == "vendor" {
            return fs.SkipDir
        }
        if filepath.Ext(path) == ".go" {
            found = append(found, filepath.Base(path))
        }
        return nil
    })
    if err != nil {
        return nil, fmt.Errorf("walk %s: %w", root, err)
    }
    slices.Sort(found)
    return found, nil
}

Cómo funciona

  1. Join limpia el resultado; nunca concatenes con una barra.
  2. WalkDir es el recorrido rápido, que usa entradas de directorio.
  3. Devolver fs.SkipDir poda un subárbol.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
21
Caracteres a escribir
448
Tokens
128
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 73 segundos.

Escribe este fragmento

Paso 3 de 3 en Archivos e IO; paso 8 de 26 en Biblioteca estándar y estructura del proyecto.

← Anterior Siguiente →