这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
Go的核心特性
类型系统
- 简单类型
- 复合类型
- 命名类型
- 未命名类型
- 静态类型
- 动态类型
- 底层类型
- 接口类型
- 具体类型
- 类型字面量
接口
并发
反射
陷阱和习惯用法
基础知识
Go语言的特性
-
语言组织
-
类型系统
-
抽象特性
-
元编程特性
-
跨平台
-
语言软实力特性
Go程序
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
1.UTF-8编码
2.main函数所在的包名必须是main
go build hello.go
./hello
Go的词法单元
token
编译器编译源文件程序第一步就是将源程序分隔成一个个独立的token。
go的标识符
- 开头必须是字符或下划线
go的关键字(25)
| break | default | func |
|---|---|---|
| case | interface | select |
| defer | go | map |
| struct | chan | else |
| goto | packge | switch |
| const | fallthrough | if |
| range | type | continue |
| for | import | return |
| var |
go内置数据类型标识符(20)
整型:
byte int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
浮点型:
float32 floar64
复数型:
complex64 complex128
字符和字符串:
string rune
接口型:
error
布尔:
bool
go的内置函数(15)
make new len cap append copy delect panic recove
close complex real image print println
内置函数也是高级语言的一种语法糖
go的常量标识符
true false iota(连续枚举的声明) nil
空白标识符
_
Operrators
+ & += &= && == != ( )
- | -= |= || < <= [ ]
* ^ *= ^= <- > >= { }
/ << /= <<= ++ = := , ;
% >> %= >>= -- ! ... . :
&^ &^=
变量和常量
变量
显示完全声明:
var varName dataType [ = value]
var number int = 521
短类型声明:
varName := value :=只能在函数内,Go编译器自动进行数据类型判断
a,b := 1,"hello"