GO语言第三天

12,613 阅读2分钟

发现一个好东西。分享一下,昨天无意中刷到的 go-edu.cn/

转 夯实基础

注意:该书合适快速入门

image.png

 // 方法四:(常用的方法) 省去var关键字,使用:=,既推导数据类型又赋值
    // 注: 短声明是在函数或方法内部使用, 不支持全局变量声明!!!!
    e := 100

例如:

func f() *int {
   v := 1
   return &v
}

关键字

关键字是 Go 语言中预先保留的单词,在程序中有特殊含义,不能用来定义变量或常量。

Go 语言中有 25 个关键字:

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

注意:下面几个不同于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 的开始位置到底层数据的结尾位置。简单的讲,容量就是从创建切片索引开始的底层数组中的元素个数,而长度是切片中的元素个数。