一尘不染

在go中导入包

go

用go编程语言,为什么在导入软件包后,我仍然必须在该软件包中的方法前面加上软件包名称?

import "io/ioutil"

func main() { 
    content, err = iotuil.ReadFile("somefile.txt")
    // etc..
}

这不是多余的吗?例如,在Java中,无需导入文件就可以执行Files.readAllLines等操作。


阅读 223

收藏
2020-07-02

共1个答案

一尘不染

我想这并不能真正回答您的问题,但是如果您愿意,您实际上可以在不显式说明软件包的情况下调用方法-
只需.在名称前面添加一个即可(但不建议这样做;请参见下文):

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的观点,即更好地阅读/查看事物的来源。

2020-07-02