目录结构
D:.
└─src
└─go_code
├─project01
│ ├─main
│ │ hello.go
│ │
│ └─package
└─project02
hello.go文件
package main // 表示该hello.go文件所在的包是main,在go中每个文件都必须归属一个包
import "fmt" // 引入一个包,包名“fmt”
// 在main包中加入main()函数
// func是关键字,表示一个函数
// main是函数名,是一个主函数,即程序的入口
func main(){
fmt.Println("hello world") // 调用fmt包的Println函数,输出hello world
fmt.Println("hello xiao\rhello world") // 回车替换该行开始位置字符
}
main()函数相当于程序的入口函数,程序从该函数开始执行(虽然严格意义上来说有比它更早执行的函数);main()函数在main包中不能缺少。
编译
1、通过 go build 命令,对go文件进行编译,生成 .exe 文件
在 dos 命令下,执行 .exe 文件就可以看到结果。
编译生成的 .exe 文件,自带环境和依赖包,可以拿到别的机器上直接运行
PS D:\go-project\src\go_code\project01\main> go build .\hello.go
PS D:\go-project\src\go_code\project01\main> ls
目录: D:\go-project\src\go_code\project01\main
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/10/27 13:57 1926144 hello.exe
-a---- 2021/10/27 13:56 307 hello.go
PS D:\go-project\src\go_code\project01\main> .\hello.exe
hello world
PS D:\go-project\src\go_code\project01\main>
编译指定生成文件名
go build -o myhello.exe hello.go
PS D:\go-project\src\go_code\project01\main> go build -o myhello.exe hello.go
PS D:\go-project\src\go_code\project01\main> ls
目录: D:\go-project\src\go_code\project01\main
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/10/27 14:07 1926144 hello.exe
-a---- 2021/10/27 13:56 307 hello.go
-a---- 2021/10/27 19:16 1926144 myhello.exe
PS D:\go-project\src\go_code\project01\main> .\myhello.exe
hello world
PS D:\go-project\src\go_code\project01\main>
2、go run 执行
go run hello.go
hello world
shift+alt+向下的箭头: 复制行
shift+alt+项左的箭头: 当光标定位在单词中间的时候可以直接选中整个单词。
格式化代码
gofmt命令
# 格式化输出,源文件没有改动
PS D:\go-project\src\go_code\project01\main>gofmt .\hello.go
package main
import "fmt"
func main() {
fmt.Println("hello xiao")
// 使用,号换行,输出的时候还是连起来输出
fmt.Println("hello worldhello worldhello worldhello worldhello world",
"hello worldhello worldhello worldhello worldhello worldhello world")
fmt.Println("hello xiao\rhello world") // 回车替换该行开始位置字符
fmt.Println("姓名\t年龄\t性别\nxiao\t12\t男")
}
PS D:\go-project\src\go_code\project01\main>
# 格式化源文件
# gofmt -w .\hello.go