一、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