go语言基础

go语言学习内容:go语法基础、go标准库、go module、git、mysql、redis、gin框架、gorm、grpc、docker、mq、go原理(锁、切片、map、gmp、channel、gc),然后就可以找工作啦啦啦啦!!!
进阶内容:微服务(go micro、go zero)、并发编程深入理解、k8s等等开源项目、云原生架构、分布式系统

  1. Go语言中,在函数调用时,引用类型(slice、map、interface、channel)都默认使用引用传递,其它是值传递。
  2. 类名、方法名首字母小写表示内部类、函数,大写表示外部(包外)可使用
  3. 一般一个类写一个文件
  4. 在Go语言中,当你使用import关键字导入一个包时,并不会自动导入该包所依赖的其他包。每个包都需要显式地通过import语句进行导入。
    • 例如,假设有一个包A,它依赖了另一个包B。如果只导入了包A而没有导入包B,那么你的代码将无法访问包B中定义的任何内容。你需要显式地导入包B才能使用它。
  5. 继承:继承一个实体类,就是把父类名写到类里面
  6. 多态:有一个父类接口,当一个实体类实现了接口里的所有方法,就等于继承了这个接口
  7. 断言成功:两种类型是相同的;子类对象也是父类类型
  8. 协程:goroutine,轻量级线程,把线程分为内核级线程和用户级线程,用户级线程就是协程
  9. 协程之间的通信使用channel,channel分为无缓冲(同步)和有缓冲(异步)
  10. go env | grep GOSUMDB:查看go的环境变量,在结果中输出包含GOSUMDB的行,grep是文本搜索工具,| 表示将一个命令的输出作为另一个命令的输入。
  11. go get下载的包的位置取决于你当前使用的依赖管理模式。在GOPATH模式下,它们被存储在GOPATH/src目录下;而在GOMODULE模式下,它们被存储在GOPATH/pkg/mod目录下,并按版本划分子目录。
  12. GOPATH模式下,在工作目录中($GOPATH)通常会有三个子目录:
    • bin:存放编译后生成的二进制可执行文件。
    • pkg:存放第三方包,存放编译后生成的.a文件。
    • src:存放项目的源代码,可以是你自己写的代码,也可以是你通过go get下载的包。
  13. 开启gomodule模式:go env -w GO111MODULE=on
    设置代理:go env -w GOPROXY=https://proxy.golang.com.cn,direct
  14. vscode的go语言插件:在插件里直接搜索go,安装;ctrl+shift+p,搜索go install tools,选Go: Install/Update Tools,全选安装。这样就有提示了
  15. select语句用于从多个通信操作中选择执行。它可以同时等待多个通道操作,当其中一个操作可以进行时,就执行相应的代码块。若多个同时满足,则随机选择一个执行。
  16. case后面接的表达式必须最终解析为通道操作。select语句的核心是等待通道操作的发生,因此case子句中的表达式必须是通道操作的合法形式。
  17. go mod init github.com/tang/enc:该命令会在enc目录下创建go.mod文件,go.mod包含module的导入路径(远程仓库路径)和依赖的包及对应的版本。
  18. 一个go module应该就是一个git仓库,一个git仓库应该只能包含一个go module。
  19. go mod tidy:添加缺失的模块依赖,并移除无用的模块依赖。修改go.mod和go.sum,不会修改本地磁盘。
    • 扫描所有import语句,找出所有直接依赖的模块
    • 查找直接依赖模块所依赖的模块,添加到依赖列表
    • 在go.mod里移除未实际依赖的模块
    • 更新go.sum
    • go mod tidy比go get更好,还会单独列出直接依赖的项。
  20. go clean -modcache:删除的是所有go.mod的本地磁盘缓存,而不仅仅是当前项目的go.mod文件的本地磁盘缓存。
  21. 编译和执行
    • 单个或少数源码文件:go build/run -o 程序名 main.go
    • 多个文件的项目:使用go build命令来编译整个项目,它会自动处理包之间的依赖关系,并编译所有必要的文件。步骤:切换到包含main包的目录;运行go build -o 程序名。
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值