发现一个好东西。分享一下,昨天无意中刷到的 go-edu.cn/
注意:该书合适快速入门
// 方法四:(常用的方法) 省去var关键字,使用:=,既推导数据类型又赋值
// 注: 短声明是在函数或方法内部使用, 不支持全局变量声明!!!!
e := 100
例如:
func f() *int {
v := 1
return &v
}
关键字
关键字是 Go 语言中预先保留的单词,在程序中有特殊含义,不能用来定义变量或常量。
Go 语言中有 25 个关键字:
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
注意:下面几个不同于Java的关键字
go
goto
chan
default
interface
select
defer
map
fallthrough
容器类型:数组,切片 , Map , 指针?
数组和切片
arr4 := [5]int{1: 100, 4: 200}
fmt.Println(arr4)
arr10 := [2]int{1: 99, 0: 900}
fmt.Println(arr10)
go的枚举
Map
go的面向对象
结构体,函数,方法,结构,错误处理
go的并发编程
协程,通道,并发,Sync包,Context
工程化
依赖管理,单元测试
web开发
数据库:网络协议,项目管理
微服务-全家桶 VS java的微服务全家桶
通信方式:Grpc,Protobuf,rest
组件层:注册中心,负载均衡,配置中心,链路追踪
保护机制:熔断,限流,超时,重试
数据层:mysql redis elasticSearch
第三方:文件配置 日志 环境隔离 中间件 Context
网关层:集中验证 动态路由 黑名单
部署:Docker K8S 公有云
数组是值类型
6.2 切片(Slice)
切片是对数组的一个连续片段的引用,所以切片是一个引用类型。切片 本身不拥有任何数据,它们只是对现有数组的引用,每个切片值都会将数组作为其底层的数据结构。slice 的语法和数组很像,只是没有固定长度而已。
6.2.2 切片的长度和容量
一个 slice 由三个部分构成:指针 、 长度 和 容量 。指针指向第一个 slice 元素对应的底层数组元素的地址,要注意的是 slice 的第一个元素并不一定就是数组的第一个元素。长度对应 slice 中元素的数目;长度不能超过容量,容量一般是从 slice 的开始位置到底层数据的结尾位置。简单的讲,容量就是从创建切片索引开始的底层数组中的元素个数,而长度是切片中的元素个数。