这是我参与「第五届青训营 」笔记创作活动的第1天
Go环境安装需要下载二进制包:go1.4.linux-amd64.tar.gz,然后将下载的二进制包解压至 /usr/local目录,并将 /usr/local/go/bin 目录添加至 PATH 环境变量。
Go 语言的基础组成有以下几个部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
hello world例子
import "fmt"
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}
go build 命令来生成二进制文件:
$ go build hello.go
$ ls
hello hello.go
$ ./hello
Hello, World!
Go 语言数据类型包括布尔、数字、字符串、派生类型 派生类型包括: 指针(Pointer)、数组、结构体(struct)、Channel 、函数、切片、接口(interface)、Map
Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 变量声明有两种 1.指定变量类型,如果没有初始化,则变量默认为零值。 2.根据值自行判定变量类型。
Go 语言运算符与c++类似
Go 语言函数声明结构
func function_name( [parameter list] ) [return_types] {
函数体
}
Go 函数可以返回多个值
Go 函数参数分为值传递和引用传递
Go 语言切片是对数组的抽象,是一种长度可变的动态数组,类似c++的vector
var identifier []type
Go 语言Map(集合),可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的,不是红黑树。
Map定义
/* 声明变量,默认 map 是 nil */
var map_variable map[key_data_type]value_data_type
/* 使用 make 函数 */
map_variable := make(map[key_data_type]value_data_type)
注:如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对
delete() 函数用于删除集合的元素, 参数为 map 和其对应的 key
Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。