Go语言基础1 | 青训营笔记

396 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第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 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。