GO语言基础语法 | 青训营笔记

89 阅读3分钟

参考文献:Go语言规范

1 词法元素(Lexical elements)

1.1 注释(Comments)

  • 行注释开始于 // ,结束于此行
    
  • 块注释开始于 /* ,结束于第一个 */ 序列
    

不能开始于rune、string字面量、注释内,无换行的注释相当于空格,有换行的注释相当于新行

1.2 标记(Tokens)

  • 标识符(identifiers)
  • 关键字(Keywords)
  • 运算符和标点(Operators and punctuation)
  • 字面量(literals)

1.3 分号(Semicolons)

终止符,golang根据下列规则省略

  1. 词法分析时,在一行最后一个标记后自动插入分号

    • 标识符
    • 字面量
    •  关键字break, continue, fallthrough, return
    •  运算符和标点++, --, ), ], }
  2. 允许复杂语句只占一行, 在闭合的 ) 或 }前可以省略分号

2 常量(Constants)

常量运行过程中值不变的存储位置。包括字面量、表示常量的标识符、常量表达式、结果为常量的类型转换或一些内置函数(例如unsafe)的结果值。可以有类型或无类型(字面量、false、true),但是无类型常量具有默认类型,即在需要类型化值的上下文中常量隐式转换为的类型,例如,在没有显式类型的短变量声明中,如 i := 0。无类型常量的默认类型分别为 bool、rune、int、float64、complex128 或 string。

3 变量(Variables)

变量是用于保存值的存储位置,允许值的集合由变量的类型决定。

4 类型(Types)

类型确定一组值以及特定于这些值的操作和方法。

  • 布尔类型Boolean types:布尔类型表示由预先声明的常量 true 和 false 表示的布尔真值集。
  • 数值类型Numeric types:整数、浮点数或复数类型分别表示整数、浮点数或复数值的集合,统称为数值类型。
  • 字符串类型String types:字符串类型表示字符串值的集合。字符串值是一个(可能为空的)字节序列。
  • 数组类型Array types:数组是单一类型(元素类型)元素的编号序列。
  • 切片类型Slice types:切片是底层数组的连续段的描述符,并提供对该数组中编号的元素序列的访问。切片类型表示其元素类型的数组的所有切片的集合。
  • 结构体类型Struct types:结构是一系列命名元素(字段),每个元素都有一个名称和一个类型。
  • 指针类型Pointer types:指针类型表示指向给定类型(指针的基类型)变量的所有指针的集合。未初始化指针的值为 nil。
  • 函数类型Function types:函数类型表示具有相同参数和结果类型的所有函数的集合。函数类型的未初始化变量的值为 nil。
  • 接口类型Interface types:接口类型定义类型集。接口类型的变量可以存储接口类型集中的任何类型的值。这种类型可以实现接口。接口类型的非初始化变量的值为零。
  • 字典类型Map types:字典是一种类型(元素类型)的无序元素组,由一组另一种类型(健类型)的唯一键索引。未初始化映射的值为 nil。
  • 通道类型Channel types:通道提供了一种机制,用于并发执行函数以通过发送和接收指定元素类型的值进行通信。未初始化通道的值为 nil。