基础语法
1、绪论
GitHub - wangkechun/go-by-example
Go(又称 Golang)是 Google 开发的一种通用性编程语言。
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
2、入门
2.1、环境配置
The Go Programming Language (google.cn)
安装完成后,在我们所设置的安装目录下将生成一些目录和文件
go version验证是否安装成功
GOPATH:主要用于指定我们的开发工作区(Workspace),内部存储了src, bin, pkg三个文件夹
-
$GOPATH/bin目录存储了通过go install 安装的二进制文件。
-
$GOPATH/pkg目录中存放的基本为mod(目前的主流,现在的项目基本都是采用mod)
-
$GOPATH/src目录存储我们项目的go代码
go env:来查看所有go环境变量的当前值,并且可设置
2.2、基础语法
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、语言数据类型
变量的声明:
- var + 标识符 + 变量名(可一次声明多个)
- 变量名 := 值
变量声明
第一种,指定变量类型,如果没有初始化,则变量默认为零值
bool 零值为 false
第二种,根据值自行判定变量类型。
第三种,如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误,格式:
若出现3e20,则此时e不为变量,而代表十的多少次方,表现为指数
声明了一个局部变量却没有在相同的代码块中使用它,会得到编译错误(必须使用)
const:常量
iota:一个可被修改的常量(const出现的第一次计为0,出现一次计数加一次,用来行索引
若常量未被定义,则它遵循上一个常量定义
2.4、条件语句
条件语句没有小括号
| 只有for循环控制语句 | 描述 |
|---|---|
| break 语句 | 经常用于中断当前 for 循环或跳出 switch 语句 |
| continue 语句 | 跳过当前循环的剩余语句,然后继续进行下一轮循环。 |
| goto 语句 | 将控制转移到被标记的语句。 |
默认不需要加break,可以使用任何类型
| select语句类似于switch语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 |
|---|
2.5、数组
数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(从0开始)
Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:
var arrayName [size]dataType
其中,arrayName 是数组的名称,size 是数组的大小,dataType 是数组中元素的数据类型。 以下定义了数组 balance 长度为 10 类型为 float32:
var balance [10]float32
如果数组长度不确定,可以使用 ... 代替数组的长度
本篇文章就总结到这里,感谢阅读。若您对鄙人文章有些许兴趣,可以留意之后的指南(下)及更多内容Thanks♪(・ω・)ノ