18
1.3.md
18
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$
|
||||
* $Id$
|
||||
|
||||
22
2.1.md
22
2.1.md
@@ -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$
|
||||
|
||||
Reference in New Issue
Block a user