diff --git a/1.3.md b/1.3.md index b1198569d..758e92e1d 100644 --- a/1.3.md +++ b/1.3.md @@ -17,8 +17,10 @@ 如果某个项目文件夹下有多个文件,又只想指定编译某个文件,这个命令可以指定编译文件,例如`go build a.go`,`go build`命令默认编译目录下全部的go文件 - 你也可以指定编译输出文件的名称,例如第一章的那个mathapp应用,我可以指定`go build -o astaxie.exe`,默认情况是你的package名,就是你的文件夹名称 - + 你也可以指定编译输出文件的名称,例如第一章的那个mathapp应用,我可以指定`go build -o astaxie.exe`,默认情况是你的package名,就是你的文件夹名称 + + (注:实际上,package名在[go语言规范](https://golang.org/ref/spec)中指代码中“package”后使用的名称,此名称可以与文件夹名不同。默认生成的可执行文件名是文件夹名。) + go build会忽略目录下以”_“开头的go文件 ##go clean @@ -59,7 +61,7 @@ ##go test - 执行这个命令,会自动执行源码目录下面命名为`*_test.go`的文件,输出的信息类似 + 执行这个命令,会自动读取源码目录下面命名为`*_test.go`的文件,生成并运行测试用的可执行文件。输出的信息类似 ok archive/tar 0.011s FAIL archive/zip 0.022s @@ -74,10 +76,10 @@ 如何查看相应package的文档呢? 例如builtin包,那么执行`go doc builtin` - 如果是http包,那么执行`go doc net/http` - 查看某一个包里面的函数,那么执行`godoc fmt Printf` - 也可以查看相应的代码,执行`godoc -src fmt Printf` - + 如果是http包,那么执行`go doc net/http` + 查看某一个包里面的函数,那么执行`godoc fmt Printf` + 也可以查看相应的代码,执行`godoc -src fmt Printf` + 通过命令在命令行执行 godoc -http=:端口号 比如( godoc -http=:8080).然后在浏览器中打开 127.0.0.1:8080 你将会看到一个 golang.org的本地copy版本,通过它你可以查询pkg文档等其他内容,如果你设置了GOPATH,在pkg分类下,不但会列出标准包的文档,还会列出你本地GOPATH中所有项目的相关文档,这对于经常被墙奸的用户来说,是一个不错的选择 ##其他命令 @@ -96,4 +98,4 @@ * 下一节: [GO开发工具](<1.4.md>) ## LastModified - * $Id$ \ No newline at end of file + * $Id$ diff --git a/2.1.md b/2.1.md index b8837f917..28a91182a 100644 --- a/2.1.md +++ b/2.1.md @@ -25,17 +25,19 @@ `package `(在我们的例子里面,plaplapla是main)这一句话是告诉我们当前这个文件属于那个包,而main包是告诉我们当前这个包是一个独立可运行的包,编译之后是可执行文件,除了main之外,其他的包最后生成的都是放在"$GOPATH/pkg/系统_架构“(以mac为例:darwin_amd64)下面的.a文件(也就是包文件)。 ->每一个GO的独立可运行的应用程序,必定包含有一个`package main`,这个main包里面必定包含有一个入口函数main函数,这个函数没有任何的参数,也没有的返回值 +>每一个GO的独立可运行的应用程序,必定包含有一个`package main`,这个main包里面必定包含有一个入口函数main函数,这个函数没有任何的参数,也没有的返回值 为了打印"Hello,world...",我们调用了一个函数Printf,这个函数来自于fmt这个包,所以我们在第三行里面导入了系统级别的fmt包,`import "fmt"` 包的概念和python的modules是同一个理念,都是有一些特有的好处:模块化(能够把你的程序分成多个模块)和重用性(每个模块都能被其他应用程序反复使用),这里我们只要先了解一下包的概念,后面我们将会开始编写自己的包 -第五行,我们定义了一个main函数,我们通过func这个关键字,他的内容通过{和}组织,就和我们平常写的c、c++、Java一样 +第五行,我们定义了一个main函数,我们通过func这个关键字,他的内容通过`{`和`}`组织,就和我们平常写的c、c++、Java一样 大家可以看到main函数是没有任何的参数的,但是我们接下来学习如何编写函数里面,函数是可以带参数的,而且可以不返回数据,返回一个或者多个数据 -第六行,我们调用了fmt包里面定义的函数Printf,大家可以看到,这个函数的调用是通过`package.function`的方式调用的,这个和python是十分相似的 +第六行,我们调用了fmt包里面定义的函数Printf,大家可以看到,这个函数的调用是通过`.function`的方式调用的,这个和python是十分相似的 + +(注:前面提到过,包名和包所在文件夹名可以是不同的,此处的package name即为通过`package `声明的包名,而非文件夹名。) 最后大家可以看到我们输出的内容里面包含了很多非ASCII码的字符,实际上,GO是天生支持UTF-8的,任何的语言都可以直接输出 @@ -44,10 +46,10 @@ GO使用package(和Python的模块类似)来组织代码。main.main函数(这个函数主要位于主包)是每一个独立的可运行程序的入口点。GO使用UTF-8字符串和标识符(因为UTF-8的发明者也就是GO的发明者),所以它天生就具有多语言的支持。 -## links - * [目录]() - * 上一章: [GO语言基础](<2.md>) - * 下一节: [GO基础](<2.2.md>) - -## LastModified - * $Id$ \ No newline at end of file +## links + * [目录]() + * 上一章: [GO语言基础](<2.md>) + * 下一节: [GO基础](<2.2.md>) + +## LastModified + * $Id$