Merge pull request #3 from hongruiqi/master

1.3 && 2.1 changes
This commit is contained in:
astaxie
2012-08-24 18:56:49 -07:00
2 changed files with 22 additions and 18 deletions

18
1.3.md
View File

@@ -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$
* $Id$

22
2.1.md
View File

@@ -25,17 +25,19 @@
`package <plaplapla>`在我们的例子里面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大家可以看到这个函数的调用是通过`<package name>.function`的方式调用的这个和python是十分相似的
前面提到过包名和包所在文件夹名可以是不同的此处的package name即为通过`package <plaplapla>`声明的包名,而非文件夹名。)
最后大家可以看到我们输出的内容里面包含了很多非ASCII码的字符实际上GO是天生支持UTF-8的任何的语言都可以直接输出
@@ -44,10 +46,10 @@
GO使用package和Python的模块类似来组织代码。main.main函数(这个函数主要位于主包是每一个独立的可运行程序的入口点。GO使用UTF-8字符串和标识符(因为UTF-8的发明者也就是GO的发明者),所以它天生就具有多语言的支持。
## links
* [目录](<preface.md>)
* 上一章: [GO语言基础](<2.md>)
* 下一节: [GO基础](<2.2.md>)
## LastModified
* $Id$
## links
* [目录](<preface.md>)
* 上一章: [GO语言基础](<2.md>)
* 下一节: [GO基础](<2.2.md>)
## LastModified
* $Id$