Go 关键字
Posted xuzhaoping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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通讯 |
defer | defer someCode: 在函数退出之前执行,方法最后执行的操作,新定义的后执行 |
go | 用于并行,开启go-routine |
range | 用于读取slice,map,channel数据,遍历数据 |
type | 用于声明自定义类型 |
map | map集合类型 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语言中的类型又可以分为静态类型和动态类型,
一个变量的静态类型是指在变量声明中示出的那个类型,绝大多数类型的变量都只拥有静态类型,唯独接口类型的变量除外,它除了拥有静态类型之外,还拥有动态类型,这个动态类型代表了在运行时与该变量绑定在一起的值的实际类型。
以上是关于Go 关键字的主要内容,如果未能解决你的问题,请参考以下文章
解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段