Go语言上手-基础语言| 青训营笔记

172 阅读2分钟

Go语言上手-基础语言

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记。

Go语言特点:

  1. 高性能,高并发
  2. 语法类似C,上手容易
  3. 丰富的标准库,有很高的兼容性
  4. 完善的工具链,完整的单元测试框架、性能测试等
  5. 编译结果默认都是静态链接
  6. 快速编译
  7. 跨平台,开发安卓IOS,Android等
  8. 垃圾回收,和Java类似,可以只关注业务逻辑

为什么使用Go语言?

  1. Go性能较好
  2. 部署简单、学习成本低
  3. 内部RPC框架和HTTP框架的推广

基础语法部分

  1. 变量类型

    Go语言是一门强类型语言,常见的变量类型包括字符串、整数、浮点型、布尔型等等。 字符串是内置类型,可以通过加号拼接,也能够直接使用“=”比较两个字符串。

  2. if else

    Go语言中的if不需要添加小括号,但是必须要添加大括号。

  3. 循环

    Go语言中没有do while循环,while循环。只有for循环。

  4. switch分支

    在Go语言中case是不需要加break的,在c++中case如果不加break的话就会执行完所有的case。

  5. 数组

    数组是一个定长的元素序列。在实际业务中使用切片更多一些。

  6. 切片

    切片可以任意更改长度。slice实际上是存储了一个长度和一个容量,当容量不够的时候,slice会进行扩容并返回新的slice。 slice初始化的时候也可以指定长度。

  7. map

    Go中的map是没有顺序的,遍历的时候是随机顺序。

  8. 指针、结构体

    在实现结构体的时候有两种写法。如果是带指针的方法,那么就是对这个结构体本身进行一个修改(变量同理)。而不带指针的话,修改的结构体(或者变量)实际上是一个拷贝,而不是对本身的结构体(或变量)进行改变。

  9. 错误处理

    在Go中,习惯使用一个单独的返回值来传递错误信息。例如函数返回error,由变量来接收函数返回的错误。

  10. JSON

    在Go的结构体中,只要保证每一个字段的第一个字母是大写,那么这个结构体就能使用JSON.marshaler进行序列化。也可以使用JSON.unmarshaler进行反序列化。

  11. 时间处理

    使用time.now()来获取当前时间。