【2】Go语言的语法

Source

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

print

println

real

recover

string

true

uint

uint8

uintptr

6.空格

在Go语言中变量的申明必须得使用空格隔开

var mogu int