第三届字节跳动青训营学习笔记

327 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记 在完成课程前置基础知识的学习和必要开发环境搭建之后,在第一节课中主要学习了以下几点:

  1. Go语言背景
  2. Go语言基础语言详细讲解
  3. 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退出循环 不同点:
  • 变量声明方式:
  1. var name="value",该声明方式会根据变量值自动推导变量类型
  2. 变量名:=值, 在声明变量时,Go语言将变量类型后置。
  • 常量:
  1. 关键字const,没有确定的类型,根据上下文自动确定其类型。
  • if——else
  1. 不同于其他编程语言,Go语言中if后的语言不用添加()括起来。
  • Switch
  1. Go语言默认无需break,则可结束循环
  2. 可使用任何类型变量、字符串、结构体。
  • 函数
  1. 函数变量类型后置。
  2. 通常情况下返回多个值,第一个值为函数返回真正的值,第二个值是错误信息。

实战项目

项目一:猜字游戏 系统生成随机数,必要要注意用时间戳初始化随机数种子,否则每次将会生成相同的随机数。 rand.Seed(time.Now().UnixNano())