go有很多内置的函数,例如println
,不需要引用即可使用。但是如果不借助go的标准库或者第三方库,我们能做的事情有限。在go中,使用关键字import
在代码中导入一个包并使用。
修改我们的程序:
package main
import (
"fmt"
"os"
)
func main() {
if len(os.Args) != 2 {
os.Exit(1)
}
fmt.Println("It's over ", os.Args[1])
}
使用下面的命令运行:
go run main.go 9000
我们现在使用了2个go的标准包:fmt
和os
。我们也引入了另外一个内置函数len
。len
返回一个字符串大小或者一个字典中值的个数,或者如上代码所示,返回数组元素的个数。如果你想知道为什么这里我们使用2个参数,因为第一个参数即索引为0
一直表示当前正在运行的可执行文件的路径(你可以自己修改程序并打印观察)。
你可能已经注意到了我们在函数名前加了包名作为前缀,例如,fmt.Println
。这和其他许多语言不同。我们将会在接下来的章节学习更多关于包的内容。现在,只需知道怎么导入并使用包就是一个很好的开端。
go在导入包的时候是比较严格的,如果导入的包没有被使用,那么程序不能被编译。试着运行一下代码:
package main
import (
"fmt"
"os"
)
func main() {
}
你会得到2个错误信息,提示fmt
和os
包被导入但是没有被使用。你会觉得很不适应么?但是,过一段时间,你会变得适应(虽然仍然很烦人)。go之所以这么严格是因为如果没有使用导入的包会使编译变慢。不可否认,这个问题我们很多人都没有考虑到。
另外,需要值得注意的是go的标准库提供了非常详细的文档。你可以在http://golang.org/pkg/fmt/#Println查询到更多关于Println
函数的信息。你甚至可以点击章节标题查看源码。你也可以滚动到顶部学习更多关于go格式化输出的功能。
如果你不能上网,你可以在本地运行下面的命令获取这个文档:
godoc -http=:6060
并打开浏览器,输入http://localhost:6060
。