00-程序结构

Go语言的大程序都从小的基本组件构建而来。

  • 变量存储值
  • 简单表达式通过加减操作合并成为大的
  • 基本类型通过数组和结构体进行聚合
  • 表达式通过if和for等控制语句来决定执行的顺序
  • 语句被组织成函数用于隔离和复用
  • 函数组织成源文件和代码包

0.1. 名称

Go中函数、变量、常量、类型、语句标签和包的名称都遵循如下规则:名称的开头是一个字母(Unicode中的字符即可)或者下划线,后面可以跟任意数量的字母、数字和下划线,对大小写敏感。

Go有25个关键字:只能用在语法允许的地方:

字母顺序关键字
bbreak
ccase、chan、const、continue
ddefault、defer
eelse
ffunc、fallthrough、for
ggo、goto
iinterface、if、import
mmap
ppackage
rrange、return
sselect、struct、switch
ttype
vvar

Go有30多个内置的预声明的常量、类型和函数:

种类关键字
常量true、false、iota、nil
int类型int、int8、int16、int32、int64
unit类型uint、uint8、unit16、uint32、unit64、uintptr
float类型float32、float64、complex64、conplex64
其他类型bool、byte、rune、string、error
函数make、len、cap、new、append、copy、close、delete、complex、real、imag、panic、recover

这些名称不是预留的,可以在声明中使用它们(即对这些名称进行重声明),但是这样是有冲突风险的。

  • 如果一个实体在函数内声明。它只在函数局部有效
  • 如果一个实体在函数外声明,它将对包里面的所有源文件可见

实体的第一个字母是否大写决定了其可见性是否跨包。如fmt包中的Printf函数,包名总是小写字母组成。

名称的长度没有限制,通常作用域越大,就是越长且有意义的名称。当由多个单词组成时,通常采用驼峰式的风格,而不是下划线。当单词中包含首字母缩写组成的单词时(如ASCII、HTML这样的),通常使用相同的大小写(全大写或全小写)。

0.2. 声明

上次修改: 25 November 2019