Go 关键字

相比其它语言的关键字 Go比较简洁只有25个关键字

  • C 44

  • C++ 84

  • Go 25

关键字作用
break中断本层循环,直接退出本层循环
continue中断本次循环,进入下一次循环
goto转向指定代码模块
switch条件选择,与if else功能类型
case与switch一起做条件选择,可以与select结合使用
default与switch一起使用设置默认值
for循环语句关键字
if条件判断
else与if一起做条件筛选
fallththrough与switch一起继续执行一面的case条件
chan信道定义 用于channel通讯
deferdefer someCode: 在函数退出之前执行,方法最后执行的操作,新定义的后执行
go用于并行,开启go-routine
range用于读取slice,map,channel数据,遍历数据
type用于声明自定义类型
mapmap集合类型 key-value存储
package包名定义,package+包名
import导入依赖包
return用于从函数返回,程序退出
func用于定义函数和方法
select用于选择不同类型的通讯,监听和channel有关的IO操作
struct用于定义抽象数据类型,定义实例类型,与type一起使用
interface用于定义接口,接口类型
const常量声明
var变量声明

Go语言的语言符号又称为记法元素,共包括5类,它们是组成Go语言代码和程序的最基本单位。

  • 标识符(identifier)
  • 关键字(keyword)
  • 操作符(operator)
  • 分隔符(delimiter)
  • 字面量(literal),

标识符

标识符可导出的前提条件有两个

  • 标识符名称中的第一个字符必须是大写

  • 标识符必须是被声明在一个代码包中的变量或者类型的名称,

    或者是属于某个结构体类型的字段名或者方法名称

在Go语言中还存在一类特殊的标识符,叫做预定义标识符,这类标识符随Go语言的源码一同出现

有下列几种

  • 1> 所有基本数据类型的名称
  • 2> 接口类型 error
  • 3> 常量 true, false 以及 iota
  • 4> 所有内联函数的名称
append
cap
close
complex
copy
delete
imag
len
make
new
panic
print
println
real
recover

由一个下划线表示的标识_为空标识符,它一般被用在需要引入一个新绑定声明中

import _ "runtime/cgo"

字面量

  • 用于表示基本数据类型值的各种字面量

  • 用户构造各种自定义的复合数据类型的类型字面量

type Person struct {
    Name string
    Age uint8
    Address string
}
  • 用于表示复合数据类型的值的复合字面量

    即用来构造类型Struct(结构体)、Array(数组)、Slice(切片)和Map(字典)的值。

    Person(Name: "Eric Pan", Age: 28, Address: "Beijing China"}
    

类型

一个类型确定了一类值的集合,类型由类型名称或类型字面量指定,类型分为基本类型和复合类型

var name string

基本类型:

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

八大复合类型:

  • Array(数组)
  • Struct(结构体)
  • Function(函数)
  • Interface(接口)
  • Slice(切片)
  • Map(字典)
  • Channel(通道)
  • Pointer(指针)

复合类型一般由若个(包括0)个其他已被定义的类型组合而成,

eg: 定义一本书的结构体

type Book struct {
    Name string
    ISBN string
    Press string
    TotalPages uint16
}

Go语言中的类型又可以分为静态类型和动态类型,

一个变量的静态类型是指在变量声明中示出的那个类型,绝大多数类型的变量都只拥有静态类型,唯独接口类型的变量除外,它除了拥有静态类型之外,还拥有动态类型,这个动态类型代表了在运行时与该变量绑定在一起的值的实际类型。