源代码
hello.go
package main
import "fmt"
func main() {
fmt.Println("hello world!")
}
说明
-
go文件的后缀是 .go
-
package main
表示hello.go 文件所在的包是main,在go中,每个文件都必须归属于一个包 -
import “fmt”
表示:引入一个包,包名fmt,引入该包后,就可以使用fmt包的函数,比如: fmt.Println -
func main() {
}
func 是一个关键字,表示一个函数
main是函数名,是一个主函数,即我们程序的入口 -
fmt.Println(“hello world!”)
表示调用fmt包的函数Println输出 “hello world”
直接运行
go run hello.go
编译
go build hello.go
运行
hello.exe
golang执行流程
编译后,再执行
对源码直接执行
两种执行流程区别
- 1 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行
- 2 如果我们是直接go run go源代码,那么如果要再另外一个机器上这么运行,也需要go开发环境,否则无法执行
- 3 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多
编译和运行说明
- 1 有了go源文件,通过编译器将期编译成机器可以识别的二进制文件
- 2 在该源文件目录下,通过 go build 对 hello.go文件进行编译. 可以指定生成的可执行文件名,在windows下必须时 .exe后缀
go build -o myhello.exe hello.go
- 3 如果程序没有错误,没有任何提示,会在当前目录下生成一个可执行文件,该文件时二进制文件,也是可执行程序
- 4 如果程序有错误,编译时,会在错误的那行报错
- 5 运行有两种形式
- 直接运行生成的可执行go程序,如 hello.exe
- 通过运行工具 go run 对源代码文件进行运行
go程序开发的注意事项
- 1 go源文件以 go为扩展名
- 2 go应用程序的执行入口是main()函数
- 3 go语言严格区分大小写
- 4 go方法由一条条语句构成
- 5 go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则报错
- 6 go语言定义的变量或者import的包如果没有使用到,代码不能编译通过
go语言的转义字符(escape char)
\t //制表符
\n //换行符
\\ //一个\
\" //一个"
\r //一个回车
注释
- 1 行注释
//注释内容
- 2 块注释(多行注释)
/*
注释内容
*/
规范的代码风格
正确的注释和注释风格
go官方推荐使用行注释来注释整个方法和语句
正确的缩进和空白
- 使用一次tab操作,实现缩进,默认整体向右边移动,用shift+tab整体向左移动
- 使用gofmt来进行格式化
gofmt hello.go
package main
import "fmt"
func main() {
fmt.Println("hello world!")
fmt.Println("天龙八部雪山飞狐\r张飞")
fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
}
将格式化后的内容写入源文件
gofmt -w hello.go
- 运算符两边习惯性各加一个空格
var num = 2 + 4 * 5
- go语言的代码风格
package main
import "fmt"
func main() {
fmt.Println("hello world!")
}
- 一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅
golang官方编程指南
https://golang.org/
https://golang.google.cn/
https://golang.google.cn/pkg/fmt/
golang标准库API文档
-
API(Application Programming Interface,应用程序编程接口)是golang提供的基本编程接口
-
go语言提供了大量的标准库,因此Google公司也为这些标准库提供了相应的API文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法
-
golang中文网 在线标准库文档
https://studygolang.com/pkgdoc -
golang的包和源文件和函数的关系简图