目录结构

  1. D:.
  2. └─src
  3. └─go_code
  4. ├─project01
  5. ├─main
  6. hello.go
  7. └─package
  8. └─project02

hello.go文件

  1. package main // 表示该hello.go文件所在的包是main,在go中每个文件都必须归属一个包
  2. import "fmt" // 引入一个包,包名“fmt”
  3. // 在main包中加入main()函数
  4. // func是关键字,表示一个函数
  5. // main是函数名,是一个主函数,即程序的入口
  6. func main(){
  7. fmt.Println("hello world") // 调用fmt包的Println函数,输出hello world
  8. fmt.Println("hello xiao\rhello world") // 回车替换该行开始位置字符
  9. }

main()函数相当于程序的入口函数,程序从该函数开始执行(虽然严格意义上来说有比它更早执行的函数);main()函数在main包中不能缺少。

编译

1、通过 go build 命令,对go文件进行编译,生成 .exe 文件

在 dos 命令下,执行 .exe 文件就可以看到结果。
编译生成的 .exe 文件,自带环境和依赖包,可以拿到别的机器上直接运行

  1. PS D:\go-project\src\go_code\project01\main> go build .\hello.go
  2. PS D:\go-project\src\go_code\project01\main> ls
  3. 目录: D:\go-project\src\go_code\project01\main
  4. Mode LastWriteTime Length Name
  5. ---- ------------- ------ ----
  6. -a---- 2021/10/27 13:57 1926144 hello.exe
  7. -a---- 2021/10/27 13:56 307 hello.go
  8. PS D:\go-project\src\go_code\project01\main> .\hello.exe
  9. hello world
  10. PS D:\go-project\src\go_code\project01\main>

编译指定生成文件名

go build -o myhello.exe hello.go

  1. PS D:\go-project\src\go_code\project01\main> go build -o myhello.exe hello.go
  2. PS D:\go-project\src\go_code\project01\main> ls
  3. 目录: D:\go-project\src\go_code\project01\main
  4. Mode LastWriteTime Length Name
  5. ---- ------------- ------ ----
  6. -a---- 2021/10/27 14:07 1926144 hello.exe
  7. -a---- 2021/10/27 13:56 307 hello.go
  8. -a---- 2021/10/27 19:16 1926144 myhello.exe
  9. PS D:\go-project\src\go_code\project01\main> .\myhello.exe
  10. hello world
  11. PS D:\go-project\src\go_code\project01\main>

2、go run 执行

  1. go run hello.go
  2. hello world

shift+alt+向下的箭头: 复制行
shift+alt+项左的箭头: 当光标定位在单词中间的时候可以直接选中整个单词。

格式化代码

gofmt命令

  1. # 格式化输出,源文件没有改动
  2. PS D:\go-project\src\go_code\project01\main>gofmt .\hello.go
  3. package main
  4. import "fmt"
  5. func main() {
  6. fmt.Println("hello xiao")
  7. // 使用,号换行,输出的时候还是连起来输出
  8. fmt.Println("hello worldhello worldhello worldhello worldhello world",
  9. "hello worldhello worldhello worldhello worldhello worldhello world")
  10. fmt.Println("hello xiao\rhello world") // 回车替换该行开始位置字符
  11. fmt.Println("姓名\t年龄\t性别\nxiao\t12\t男")
  12. }
  13. PS D:\go-project\src\go_code\project01\main>
  14. # 格式化源文件
  15. # gofmt -w .\hello.go