这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记 在完成课程前置基础知识的学习和必要开发环境搭建之后,在第一节课中主要学习了以下几点:
- Go语言背景
- Go语言基础语言详细讲解
- Go语言实战
关于Go语言
go语言本身非常年轻,发布于2009年,C语言是上世纪70年代诞生的语言,C++是80年代诞生的,python是1991年诞生的,java是1995年诞生的,相比而言,go是目前流行语言中最年轻的,是在这些众多语言肩膀上诞生的语言,是由google支持的开源语言,属于静态的编译型语言。
- 语法简单(只有for循环),学习曲线平缓
- 丰富的标准库,基本不需要使用第三方库,标准库的版本迭代更好,没有繁琐的配置和版本问题
- 高性能
- 高并发(充分利用多核CPU的优势,更好的实现高并发性能)
- 快速编译
- 微服务
- 拥有良好的垃圾回收机制 ps:在快速编译、微服务这一点上Go语言优于C++。
GO语言与其他语言的异同
相同点:
- 打印输出与java、C类似,使用print语句实现。
- 循环同样使用continue继续循环,break退出循环 不同点:
- 变量声明方式:
- var name="value",该声明方式会根据变量值自动推导变量类型
- 变量名:=值, 在声明变量时,Go语言将变量类型后置。
- 常量:
- 关键字const,没有确定的类型,根据上下文自动确定其类型。
- if——else
- 不同于其他编程语言,Go语言中if后的语言不用添加()括起来。
- Switch
- Go语言默认无需break,则可结束循环
- 可使用任何类型变量、字符串、结构体。
- 函数
- 函数变量类型后置。
- 通常情况下返回多个值,第一个值为函数返回真正的值,第二个值是错误信息。
实战项目
项目一:猜字游戏
系统生成随机数,必要要注意用时间戳初始化随机数种子,否则每次将会生成相同的随机数。
rand.Seed(time.Now().UnixNano())