用go编程语言,为什么在导入软件包后,我仍然必须在该软件包中的方法前面加上软件包名称?
即
import "io/ioutil" func main() { content, err = iotuil.ReadFile("somefile.txt") // etc.. }
这不是多余的吗?例如,在Java中,无需导入文件就可以执行Files.readAllLines等操作。
我想这并不能真正回答您的问题,但是如果您愿意,您实际上可以在不显式说明软件包的情况下调用方法- 只需.在名称前面添加一个即可(但不建议这样做;请参见下文):
.
package main import ( . "fmt" . "io/ioutil" ) func main () { content, err := ReadFile("testfile") if err != nil { Println("Errors") } Println("My file:\n", string(content)) }
注意下面@ JIMT的评论-这种做法是 不 建议的测试之外,因为它可能会导致名称冲突与将来的版本。另外,绝对同意@DavidGrayson的观点,即更好地阅读/查看事物的来源。