Tên biến chung cho các tệp hoặc thư mục là "đường dẫn". Thật không may đó cũng là tên của một gói trong Go. Bên cạnh đó, thay đổi đường dẫn làm tên đối số trong DoIt, làm cách nào để tôi lấy mã này để biên dịch?Làm cách nào để sử dụng tên biến có cùng tên với gói trong Go?
package main
import (
"path"
"os"
)
func main() {
DoIt("file.txt")
}
func DoIt(path string) {
path.Join(os.TempDir(), path)
}
Các lỗi tôi nhận được là:
$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)
tôi sợ rằng đó sẽ là câu trả lời ... Ước gì có một cách khác, nhưng tôi không thấy nó. – Nate
Bạn biết những gì là loại mỉa mai? Mã gói đường dẫn không có giới hạn này. Nếu bạn nhìn vào path.Split (http://golang.org/src/pkg/path/path.go?s=2665:2707#L97), bạn sẽ thấy nó có một đối số có tên là path. đường dẫn được định nghĩa trong tệp, nhưng không được nhập ... – Nate
Giới hạn này không áp dụng ở đó, bởi vì không có gói 'đường dẫn' được nhập và không có biến' đường dẫn' khác vào bóng, nhưng tôi có thể giả sử bạn đã biết điều đó. ;) – macbirdie