Go 语言入门指南:基础语法和常用特性解析| 青训营(上)

159 阅读4分钟

基础语法

1、绪论

image.png

GitHub - wangkechun/go-by-example

Go(又称 Golang)是 Google 开发的一种通用性编程语言。

  • 简洁、快速、安全
  • 并行、有趣、开源
  • 内存管理、数组安全、编译迅速

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

image.png

2、入门

2.1、环境配置

The Go Programming Language (google.cn) image.png 安装完成后,在我们所设置的安装目录下将生成一些目录和文件 image.png go version验证是否安装成功 image.png

GOPATH:主要用于指定我们的开发工作区(Workspace),内部存储了src, bin, pkg三个文件夹

  • $GOPATH/bin目录存储了通过go install 安装的二进制文件。

  • $GOPATH/pkg目录中存放的基本为mod(目前的主流,现在的项目基本都是采用mod)

  • $GOPATH/src目录存储我们项目的go代码

go env:来查看所有go环境变量的当前值,并且可设置

2.2、基础语法

image.png

1 - main包,程序的入口文件。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包

3 - 导入标准库"fmt"包,主要用于输入输出格式化IO字符串

5 - main函数程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)

6 - fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符\n

当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )

go run 运行程序


Go 标记 (关键字,标识符,常量,字符串,符号)

行分隔符    不用分号

注释      // 或 /* ... */

标识符    第一个字符必须是字母或下划线而不能是数字

格式化字符串

Go 语言中使用 fmt.Sprintf 或 fmt.Printf 格式化字符串并赋值给新串:

  • Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。
  • Printf 根据格式化参数生成格式化的字符串并写入标准输出。
func main() { 
    // %d 表示整型数字,%s 表示字符串 
    var stockcode=123 
    var enddate="2020-12-31" 
    var url="Code=%d&endDate=%s" 
    var target_url=fmt.Sprintf(url,stockcode,enddate) 
    fmt.Println(target_url) 
}

2.3、语言数据类型

image.png 变量的声明:

  • var + 标识符 + 变量名(可一次声明多个)
  • 变量名 := 值

变量声明

第一种,指定变量类型,如果没有初始化,则变量默认为零值

bool 零值为 false

第二种,根据值自行判定变量类型。

第三种,如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误,格式:

若出现3e20,则此时e不为变量,而代表十的多少次方,表现为指数

声明了一个局部变量却没有在相同的代码块中使用它,会得到编译错误(必须使用)

image.png

const:常量
iota:一个可被修改的常量(const出现的第一次计为0,出现一次计数加一次,用来行索引 若常量未被定义,则它遵循上一个常量定义

2.4、条件语句

image.png 条件语句没有小括号

image.png

只有for循环控制语句描述
break 语句经常用于中断当前 for 循环或跳出 switch 语句
continue 语句跳过当前循环的剩余语句,然后继续进行下一轮循环。
goto 语句将控制转移到被标记的语句。

image.png 默认不需要加break,可以使用任何类型

select语句类似于switch语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

2.5、数组

image.png 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(从0开始)

Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:

var arrayName [size]dataType

其中,arrayName 是数组的名称,size 是数组的大小,dataType 是数组中元素的数据类型。 以下定义了数组 balance 长度为 10 类型为 float32:

var balance [10]float32

如果数组长度不确定,可以使用 ... 代替数组的长度

image.png

本篇文章就总结到这里,感谢阅读。若您对鄙人文章有些许兴趣,可以留意之后的指南(下)及更多内容Thanks♪(・ω・)ノ