ファイルまたはディレクトリの一般的な変数名は "path"です。残念ながら、それはGoのパッケージの名前でもあります。 DoItの引数名としてパスを変更すると、このコードをコンパイルするにはどうすればよいですか?Goのパッケージと同じ名前の変数名はどのように使用しますか?
package main
import (
"path"
"os"
)
func main() {
DoIt("file.txt")
}
func DoIt(path string) {
path.Join(os.TempDir(), path)
}
私が手にエラーがある:
$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)
:
pathpkg "path"
にimport
にライン"path"
を変更するので、あなたのコードの開始はもちろん、このようになり、あなたがに
DoIt
コードを変更する必要があることでpathpkg恐ろしいことが答えになるだろう...別の方法がありましたら願っていますが、私はそれを見ていません。 – Nateあなたは皮肉なことが何であるか知っていますか?パスパッケージコードにはこの制限はありません。 path.Split(http://golang.org/src/pkg/path/path.go?s=2665:2707#L97)を見ると、pathという名前の引数があることがわかります。パスはファイルに定義されていますが、インポートされません... – Nate
この制限はそこには適用されません。 'path'というパッケージはインポートされておらず、' shadow'変数もありません。 ;) – macbirdie