一只往上爬的蜗牛

一只往上爬的蜗牛

一、为什么开始学go语言

我自己是做测试的,所测试项目使用的是go语言。开始学习go语言的原因有两个:一方面,为了更好的做好工作;
另一方面,为了提高自己的核心竞争力。

二、第1天学习到的内容

2.1 Go是怎么解决包依赖管理问题的?

早期:GOPATH
中期:go vendor
现在:Go Module

  • 将基于当前项目创建一个 Go Module,通常有如下几个步骤:
  • 第一步,通过 go mod init 创建 go.mod文件,将当前项目变为一个 Go Module;
  • 第二步,通过 go mod tidy 命令自动更新当前 module 的依赖信息;
  • 第三步,执行 go build,执行新 module 的构建。
2.2 Go Module常见使用场景

参考文档:Go Module使用 六大场景讲解示例
1、为当前 module 添加一个依赖
如果我们要增加某个依赖,可以手动执行 go get 命令;我们也可以使用 go mod tidy 命令,在执行构建前自动分析源码中的依赖变化,识别新增依赖项并下载它们

go get github.com/google/uuid

2、升级依赖的版本
执行带有版本号的 go get 命令

$ go get github.com/sirupsen/logrus@v1.7.0

3、降级依赖的版本

$ go get github.com/sirupsen/logrus@v1.7.1
2.3 Go项目的目录结构

优秀开源 的go项目结构样例–Docker
Go语言学习:第1天-LMLPHP

2.4 Go中命名规范

Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。

当命名(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Analysize,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);
命名如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 private )
比如,在main方法中,调用controller.index(),由于是小写字母开头,对外不可见,所以无法调用成功。–询问同事ying.wang才解决的。
Go语言学习:第1天-LMLPHP

三、遇到问题汇总

3.1 golang 中main包下入口文件调用其它go文件函数出现undefined
Go语言学习:第1天-LMLPHP

四、憧憬

学习大佬文档知识,模仿实现一个类似的
7天用Go从零实现Web框架Gee教程

12-12 15:49