一、Go语言基础组成
- Go语言基础组成:
-
- 包申明
- 引入包
- 函数
- 变量
- 语句&表达式
- 注释
-
- 实例:
package main //申明包 import "fmt" /* 这是一个朴实无华的注释 */ func main() { fmt.Printf("mogu") }
- 实现流程:
- 第一行:package main定义包名,源文件的第一行必须指定这个文件属于那个包,而main包表示这是一个可独立执行的程序,每个Go应用程序都包含一个名为main的包
- 第二行:import "fmt"告诉Go编译器需要使用fmt包里面的东西(比如说里面的函数,或者变量)fmt=format,是一种格式化输出函数汇总包,一般用于格式化输出
- 第三四五行:注释,也可以//
- 第六行:func main()是程序开始执行函数。main函数是每个可执行程序所必包含的,一般来说这是启动后第一个执行的函数(当然如果有init函数则会先执行init函数 类比K8sinit容器)
- 第七行:fmt.Printf,调用的是fmt里面的格式化输出。
二、Go的基本命令
我们有IDE所以一般不会接触到Go的命令,但是作为一个全栈工程师(未来的)想拿Go代替shell写脚本的话就需要接触到这些(【拓展】使用Go作为脚本语言)
-
- go run 快速执行go文件,就像执行脚本一样,先编译将编译好的文件放在一个临时文件下再执行
- go build 编译程序,生成二进制可执行文件(将当前目录下所有的源码编译)
- go test 执行单元测试或压力测试
- go env 显示go相关的环境变量
- go fmt 格式化源代码(这玩意主要是我们网上找了写源码格式混乱的时候需要它)
三、Go的执行流程
Go的话支持两种执行方法:
gobulid:
gorun:
面试题:Go的两种执行流程方式的区别
我们使用gobuild的话我们会先生成.exe文件,在这个文件里会将程序运行所依赖的库文件包含到可执行文件 中,其实类似docker,这样我们可以在没有Go语言的环境执行Go项目,而go run的话则需要Go语言环境的支持
四、GO的标记
1、分隔符
在Go的程序中,一行代表一个语句的结束,每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。当然如果你打算将多个语句写在一行的话还是得用;人为区分
2、注释
注释里面的字符将不会被编译,注释也分为单行注释//和多行注释/* */。
3、标识符
标识符用来命名变量、类型等程序实体。标识符也对格式有限制,举个例子:
//有效标识 _mogu mo_gu mogu123 m //无效标识 1mogu main mo+gu
4.字符串连接
Go语言的字符串可以通过+实现连接
package main //申明包 import "fmt" func main() { fmt.Printf("zhangpc" + " " + "zhouyan") } 输出结果: zhangpc zhouyan
5.关键字
下面列举了 Go 代码中会使用到的 25 个关键字或保留字:
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
| println | real | recover | string | true | uint | uint8 | uintptr |
6.空格
在Go语言中变量的申明必须得使用空格隔开
var mogu int