Go 关键字和标识符

128 阅读2分钟

命名标识符

在 Go 语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。

  • 支持的命名写法
    1. 小驼峰 myVariable
    2. 大驼峰 MyVariable
    3. 下划线 _funcName
    4. 普通写法: data data2
  • 不支持的命名写法
    1. 不能以数字开头: 2variable
    2. 不能以连接符: my-variable
    3. 不要使用关键字:for if else
  • 特殊意义的命名
    1. 错误命名通常:以Err开头例如:ErrNotFound、ErrInvalidInput。
    2. 测试函数命名:测试函数应该以Test开头,后跟被测试函数的名称,并且第一个字母应该大写。例如:TestFunctionName()。
    3. 包的公共和私有成员:首字母大写为公有可导出使用,小写为私有只能在当前包使用 (变量名 函数名 结构体名以及属性名)

关键字

在 Go 语言中,关键字具有特定的语法含义,它们用于定义语言的结构和语法规则。关键字在代码中具有特殊的含义,编译器会根据这些关键字来解析和执行代码,从而保证代码的正确性和一致性

  • 包关键字
    • package 包名
    • import 引入包
  • 流程关键字
    • if + else 用于条件判断,根据条件的真假执行不同的分支
    • for + rang { break continue } 用于迭代数组、切片、映射或通道中的元素,break 和 continue 用于控制循环的执行。
    • switch { case + default } 用于多路分支选择
    • select { case + default } 用于从多个通道中选择发送和接收操作,用于通道的循环处理
    • defer 函数结束会执行带此关键字的函数(在当前函数内部定义)定义最早执行越晚
      func setup() {
        fmt.Println(1)
      }
      func main() {
        defer setup()
        defer fmt.Println(2)
        fmt.Println(3)
      }
      // 结果 3 2 1
      
    • return 终止函数并返回结果
    • goto 跳转到代码中的指定位置 (不建议使用)
      
      func main() {
          var i int = 0
          if i < 5 {
              goto Loop // 跳转到标签 loop 处继续执行
          }
      Loop: // 定义一个标签
          fmt.Println("i<5")
      }
      
      
  • 函数关键字
    • 特殊: main init 为程序自动执行函数 main入口函数 init初始化函数可重复写 init比main提前执行
    • make len cap new append copy close delete
    • complex real imag string
    • panic recover
  • 声明关键字
    • var
    • const
    • type
    • func
    • struct
  • 数据关键字
    • map
    • []
    • chan
    • true
    • false
    • nil
  • 类型关键字
    • 有符号数字:int int8 int16 int32 int64 (-1 0 1)
    • 无符号整型:uint uint8 uint16 uint32 uint64 ()
    • 浮点数:float32 float64
    • 复数:complex128 complex64
    • 布尔:bool
    • 字节:byte
    • 字符:string
    • 特殊:error 错误类型 any 任何类型 interface{}接口类型和any一样 rune Unicode字符,它的码点是U+4E2D