golang 基础知识点梳理

写过一段时间 golang 后,业务开发应该游刃有余了,可以检查下这些基本的语法你都掌握了么?25 个关键字、37 个预定义标识符,41 个标准库是不是都很熟悉了? 独特的 interface、go、select 语法你都会用了么?

基础知识

正如大部分编程语言,了解基本的数据结构、关键字、语法、包引用、错误处理等,就可以进行简单的业务开发了. 本文主要梳理了 golang 这些基本的知识点,可以对照看是否都了解它们的用法了.

一些基本的数据结构如 int、bool、string、byte等,语法 if、else、for、break、func、return 、struct 等与其它语言类似,有编程基础很快能够掌握.

此外,也有许多写法上较为特别的概念需要注意:

  • 抽象接口 interface 的使用
  • 引用类型 slicemapchannel 及其底层原理
  • 协程并发 go、select
  • 错误处理 error、nil、defer、panic
  • 内置函数 append
    、copy
  • 标准库 io、reflect
  • 等等

25个关键字

golang 有 25 个常用关键字,它们是语法的关键. 是不允许被定义为变量名的. 根据它们的作用,我简单分了个类. 其中黑体的关键字,是值得更进一步探究的,它们是 golang 中比较特别的特性. 25 个关键字如下:

  • 基本: var、const、package、import、map
  • 方法: func、return、interface、struct、type
  • 并发: goselectchan
  • 结构
    : if、else、switch、case、default、fallthrough、for、break、continue、goto、range
  • 其它: defer

预定义

除了构成语法的关键字,还有一些 golang 提供的内建常量、类型及函数. 如下共 37 个,其中常量 4 个,类型 20 个,函数 13 个. 黑体的部分很常用,是 golang 独特的部分,也是值得进一步探究的.

内建常量

  • true、false、iota、nil

内建类型

  • int、int8、int16、int32、int64
  • uint、uint8、uint16、uint32、uint64、uintprt
  • float32、float64、complex64、complex128
  • bool、byte、rune、string、error

内置函数

  • make、len、cap、new、appendcopy、close、delete
  • complex、real、imag
  • panicrecover

内置 41 个标准库

库即可以直接引入代码的 package,标准库即 golang 官方提供的库. 它们都是十分常用的 package. 本文将 41 个标准库简单分为 6 个类别.

包括基本的数据结构及算法处理如 math、hash、container 等,输入输出如 io、bufio 等,网络库 net、html 等,go 语言自身库如 reflect、errors 等,操作系统库如 sync、time、syscall 等,其它工具库如 flag、database 等.

这 41 个官方标准库不仅是最常用的基本库,提供了许多优秀的基础能力. 也是最优秀的 golang 源码,是十分值得进一步探究的. 详细的 41 个标准库如下图所示.

golang 基础知识点梳理

41 个标准库

问题思考

乍一看,上面那些东西都很熟悉,这些关键字、预定义标识符、标准库都是经常出现在自己的代码中的. 那么下面这些问题你能回答么?

  1. golang 的引用类型有哪几个?什么是引用类型?
  2. append 操作该如何使用?赋值时需要注意什么?
  3. golang 的切片 slice 是如何扩容的?
  4. select 有什么作用?它是如何实现的?
  5. 如何改变 map 中的 value ?如果存储的是一个结构体对象,如何改变这个对象的成员变量值?map 是如何实现的?它如何扩容?
  6. len() 函数和 cap() 函数有什么区别?


分享到:


相關文章: