Un nombre de variable común para archivos o directorios es "ruta". Desafortunadamente ese también es el nombre de un paquete en Go. Además, cambiando la ruta como nombre de argumento en DoIt, ¿cómo puedo compilar este código?¿Cómo se usa un nombre de variable con el mismo nombre que un paquete en Go?
package main
import (
"path"
"os"
)
func main() {
DoIt("file.txt")
}
func DoIt(path string) {
path.Join(os.TempDir(), path)
}
El error que consigo es:
$6g pathvar.go
pathvar.go:4: imported and not used: path
pathvar.go:13: path.Join undefined (type string has no field or method Join)
estaba miedo de que esa sea la respuesta ... Desearía que hubiera otra manera, pero no la estoy viendo. – Nate
¿Sabes qué es algo irónico? El código del paquete de ruta no tiene esta limitación. Si echas un vistazo a path.Split (http://golang.org/src/pkg/path/path.go?s=2665:2707#L97), verás que tiene un argumento llamado path. la ruta se define en el archivo, pero no se importa ... – Nate
Esta limitación no se aplica allí, porque no hay ningún paquete 'ruta' importado ni ninguna otra variable' ruta' para sombrear, pero puedo suponer que ya lo sabe. ;) – macbirdie