这是我参与「第五届青训营 」笔记创作活动的第1天
本节课的重点内容
主要介绍了go语言的特性,开发环境安装,以及go语言的数据类型,基本语法,异常处理等方面,同时配套了三个课后实操小实验好让我们快速上手go语言。
1.Go语言特性
- 语言层面支持协程,可以很方便的写出高性能高并发的代码,而且是开源的
- 语法简单,容易上手
- 非常丰富的标准库
- 完善的生态,和工具链
- 有垃圾回收机制,数组安全
- 静态链接是一种强类型的语言
- 可以快速编译和跨平台
2.Golang安装地址安装好后需要配置环境变量
3.集成开发环境
可以使用vscode和jetbrains全家桶的goland,新手比较推荐goland。
4.go语言数据类型
var a bool//bool 类型
var a int //数字类型,float32,float64等
var a string //字符串类型
其他类型
//指针,但是go语言的指针和c的不同,它只能做一些在函数传递参数是需要修改原变量内容的情况,他不能做算术运算。
a := 1
var b *int
b = &a
//数组
var a [5]int
//结构体
type user struct {
name string
password string
}
//channel该类型可以实现协程之间的通信,可以带缓冲和不带缓冲
a := make(chan int, 5)
//函数
func add (a int, b int) int {
return a + b
}
//切片,go语言的切片实际上只是一个对底层数组的引用。多个切片可以指向同一个底层数组
a := make([]int, 5)
//map
a := make(map[string]string, 5)
go语言没有面向对象的写法,没有类似class的关键字,如果要面向对象编程,只能为结构体绑定函数
type user struct {
name string
password string
}
func (u *user) setPassword(password string) {
u.password = password
}
go语言没有像java一样的异常处理机制,但是可以利用函数可以有多个返回值这一特性返回异常信息,接收方需要使用err != nil 来判断是否有异常抛出
type user struct {
name string
password string
}
func findU(users []suer, name string) (v *user, err error) {
return nil, errors.New("not fount")
}
课后总结
go语言的特点导致了它在高性能高并发场景的广泛应用,同时近几年来越来越多的公司开始使用go语言。对于高性能分布式系统而言它比其他语言有更高的开发效率,许多的分布式开源项目都是使用的go语言