go
MUTANT_HXY
这个作者很懒,什么都没留下…
展开
-
Mac下用Homebrew安装go
Mac下用Homebrew安装go查看可用go版本安装go:配置环境变量查看可用go版本brew search go安装go:brew install go配置环境变量 vim ~/.bash_profile 添加:export GOROOT="/usr/lib/golang"export GOPATH="自定义的gopath位置"export PATH=$PATH:$GOROOT/bin:$GOPATH/bin让改动生效source ~/.bashrc...原创 2021-02-22 10:05:11 · 1596 阅读 · 0 评论 -
第一个Gin框架goweb服务
第一个Gin框架goweb服务开启go module,设置代理安装gin框架demo代码附录go mod的常用命令开启go module,设置代理go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.io,direct安装gin框架go get -u -v github.com/gin-gonic/gin使用的时候要导入包:import "github.com/gin-gonic/gin"demo代码创建一个文件夹gind原创 2021-02-20 11:12:42 · 155 阅读 · 0 评论 -
linux下配置gopath
linux下配置gopathvim ~/.bash_profile添加:export GOROOT="/usr/lib/golang"export GOPATH="自定义的gopath位置"export PATH=$PATH:$GOROOT/bin:$GOPATH/bin原创 2021-02-20 00:33:18 · 389 阅读 · 0 评论 -
CentOS安装gin框架镜像加速
CentOS安装gin框架镜像加速设置镜像源安装设置镜像源七牛云go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,direct阿里云go env -w GO111MODULE=ongo env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct安装go get -u github.com/gin-gonic/gin...原创 2021-02-19 18:21:30 · 322 阅读 · 0 评论 -
Go组队学习12.并发编程
Go并发原语协程Goroutines每个go程序至少都有一个Goroutine:主Goroutine(在运行进程时自动创建)。以及程序中其他Goroutine 例如:下面程序创建了main的Goroutine及匿名的Goroutine。func main() { go func() { fmt.Println("you forgot me !") }()}WaitGroup假设主线程要等待其余的goroutine都运行完毕,不得不在末尾添加time.Sleep(),但是这样会引发两个问原创 2020-12-26 22:29:38 · 136 阅读 · 0 评论 -
Go组队学习 11.单元测试
单元测试测试文件通常是以xx_test.go命名,放在同一包下面。单测要点第一:单元测试的时候,如果有一些打印log信息,我们运行xxx_test.go是输出不出来的,此时需要使用:go test xxx_test.go -v使用-v参数可以帮助我们解决此问题。第二:单测覆盖率,覆盖率可以简单理解为进行单元测试mock的时候,能够覆盖的代码行数占总代码行数的比率,当然是高一点要好些。可以通过-cover指定go test xxx_test -v -cover第三:在上述提到的测试方法中我原创 2020-12-25 23:33:57 · 98 阅读 · 0 评论 -
Go组队学习 10.反射机制
反射机制反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时典型应用是对象关系映射type User struct { gorm.Model Name string Age sql.NullInt64 Birthday *time.Time Email string `gorm:"type:varchar(100);unique_index"` Role string `gorm:"size:原创 2020-12-24 23:58:10 · 105 阅读 · 0 评论 -
Go组队学习 9.异常处理
异常处理errorerror接口定义:type error interface { Error() string}需要实现Error()方法返回一个字符串两种构造error的方式:第一种:errors.New()err := errors.New("This is an error")if err != nil { fmt.Print(err)}第二种:fmt.Errorf()err := fmt.Errorf("This is an error")if err != n原创 2020-12-23 23:56:00 · 130 阅读 · 0 评论 -
Go组队学习 8.包管理
Go ModulesModules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性Go Modules的使用方法首先需要设置环境变量,可以使用go env命令查看当前配置$ go envGO111MODULE="auto"GOPROXY="https://proxy.golang.org,direct"GONOPROXY=""GOSUMDB="sum.golang.org"GONOSUMDB=""GOPRIVATE="原创 2020-12-22 23:26:32 · 94 阅读 · 0 评论 -
Go组队学习 7.结构体、方法、接口
结构体Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。结构体定义结构体中字段的类型可以是任何类型,包括函数类型,接口类型,甚至结构体类型本身。type identifier struct { field1 type1 field2 type2 ...}//例type Student struct { Name string Age int}在声原创 2020-12-21 22:11:15 · 139 阅读 · 0 评论 -
Go组队学习 6.函数
go语言中函数定义格式如下:func functionName([parameter list]) [returnTypes]{ //body}函数由func关键字进行声明。functionName:代表函数名。parameter list:代表参数列表,函数的参数是可选的,可以包含参数也可以不包含参数。returnTypes:返回值类型,返回值是可选的,可以有返回值,也可以没有返回值。body:用于写函数的具体逻辑函数是值传递,如果想要函数可以直接修改参数的值,那么我们可以用指针传原创 2020-12-21 21:19:02 · 106 阅读 · 0 评论 -
Go组队学习 5.数组、切片
数组定义数组var arr1 [10]intvar arr2 = [10]int{}var arr3 = [5]int{2,3}var arr4 = [5] int{3:5}//下标3的位置赋值5arr5 := [10]int{}/*结果:[0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0][2 3 0 0 0] [0 0 0 5 0] [0 0 0 0 0 0 0 0 0 0]*/遍历数组通过range来遍历数组会有两个返回值,其中第一个原创 2020-12-19 23:22:59 · 94 阅读 · 1 评论 -
Go组队学习 4.字典、字符串
字典map是一种键值对结构,可以通过key找到对应的value。map是引用类型map是使用Hash实现的Map是无序键值对len()函数返回Map的key的个数map的key可以是所有可比较的类型,如布尔型、整数型、浮点型、复杂型、字符串型,如果使用interface{}作为value类型,那么就可以接受各种类型的值,只不过在具体使用的时候需要使用类型断言来判断类型。定义字典时不需要为其指定容量,因为map是可以动态增长的定义字典/* 声明变量,默认 map 是 nil key为i原创 2020-12-18 22:16:31 · 104 阅读 · 1 评论 -
Go组队学习 3.运算符、控制语句
1.运算符优先级2.控制语句程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。顺序结构:从上向下,逐行执行。选择结构:条件满足,某些代码才会执行。0-1次- 分支语句:if,switch,select循环结构:条件满足,某些代码会被反复的执行多次。0-N次循环语句:for2.1 if语句if 语句 由一个布尔表达式后紧跟一个或多个语句组成。if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。if 或原创 2020-12-17 22:36:46 · 125 阅读 · 0 评论 -
Go组队学习 2.变量 、常量、枚举
一、变量的使用1.1 什么是变量变量,计算机语言能存储计算结果或表示值的抽象概念。可以通过变量名访问,变量名由字母、数字、下划线组成,其中首个字符不能为数字。以字母或下划线开头,由一个或多个字母、数字、下划线组成变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变。1.2 声明变量在go中声明变量有多种语法。指定变量类型,若没有初始化,数值类型(包括complex64/128)默认零值,bool默认false,字符串默认“”,“var a *int、var a []int原创 2020-12-16 22:40:26 · 111 阅读 · 0 评论 -
Go组队学习 1.数据类型、关键字、标识符
1.数据类型、关键字、标识符1.1 数据类型1.1.1 按类别布尔型:只可以是常量 true 或者 false。eg:var b bool = true数字类型:整型和浮点型。位的运算采用补码字符串类型:字符串就是一串固定长度的字符连接起来的字符序列,Go 的字符串是由单个字节连接起来。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本复数:complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认原创 2020-12-15 20:28:48 · 222 阅读 · 0 评论 -
GO初识
Go语言特性自动垃圾回收更丰富的内置类型函数多返回值错误处理匿名函数和闭包类型和接口并发编程反射语言交互性原创 2020-12-14 23:07:04 · 103 阅读 · 1 评论 -
Go输入输出优化
读入一行内多个int类型数据:var scanner *bufio.Scannerfunc main(){ scanner = bufio.NewScanner(os.Stdin) bs := make([]byte, 20000*1024) scanner.Buffer(bs, len(bs)) abcd := readLine() }func readLine() []int { scanner.Scan() line := strings.Sp原创 2020-11-03 18:46:56 · 167 阅读 · 0 评论 -
ACWing 796. 子矩阵的和
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。输出格式共q行,每行输出一个询问的结果。数据范围1≤n,m≤1000,1≤q≤200000,1≤x1≤x2≤n,1≤y1≤y2≤m,−1000≤矩阵内元素的值≤1原创 2020-11-03 14:55:01 · 370 阅读 · 0 评论 -
GoLand中报错package xxx is not in GOROOT
问题我在导入gopath目录下的包时报错“package xxx is not in GOROOT“,编译器没有去gopath下找包,查了一下原因是GO111MODULE没有关, gomod 和 gopath 两个包管理方案,并且相互不兼容,在 gopath 查找包,按照 goroot 和多 gopath 目录下 src/xxx 依次查找。在 gomod 下查找包,解析 go.mod 文件查找包,mod 包名就是包的前缀,里面的目录就后续路径了。在 gomod 模式下,查找包就不会去 gopath 查找,原创 2020-10-28 17:00:01 · 25309 阅读 · 4 评论