1.6 导入包

go有很多内置的函数,例如println,不需要引用即可使用。但是如果不借助go的标准库或者第三方库,我们能做的事情有限。在go中,使用关键字import在代码中导入一个包并使用。

修改我们的程序:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. func main() {
  7. if len(os.Args) != 2 {
  8. os.Exit(1)
  9. }
  10. fmt.Println("It's over ", os.Args[1])
  11. }

使用下面的命令运行:

go run main.go 9000

我们现在使用了2个go的标准包:fmtos。我们也引入了另外一个内置函数lenlen返回一个字符串大小或者一个字典中值的个数,或者如上代码所示,返回数组元素的个数。如果你想知道为什么这里我们使用2个参数,因为第一个参数即索引为0一直表示当前正在运行的可执行文件的路径(你可以自己修改程序并打印观察)。

你可能已经注意到了我们在函数名前加了包名作为前缀,例如,fmt.Println。这和其他许多语言不同。我们将会在接下来的章节学习更多关于包的内容。现在,只需知道怎么导入并使用包就是一个很好的开端。

go在导入包的时候是比较严格的,如果导入的包没有被使用,那么程序不能被编译。试着运行一下代码:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. func main() {
  7. }

你会得到2个错误信息,提示fmtos包被导入但是没有被使用。你会觉得很不适应么?但是,过一段时间,你会变得适应(虽然任然很烦人)。go之所以这么严格是因为如果没有使用导入的包会使编译变慢。不可否认,这个问题我们很多人都没有考虑到。

另外,需要值得注意的是go的标准库提供了非常详细的文档。你可以在http://golang.org/pkg/fmt/#Println查询到更多关于Println函数的信息。你甚至可以点击章节标题查看源码。你也可以滚动到顶部学习更多关于go格式化输出的功能。

如果你不能上网,你可以在本地运行下面的命令获取这个文档:

godoc -http=:6060

并打开浏览器,输入http://localhost:6060

链接