
Go
文章平均质量分 71
CaptainCats
悟已往之不谏、知来者之可追。
展开
-
go语言sftp组件github.com/pkg/sftp、和基于win7搭建sftp服务---freesshd
sftpsftp是基于ssh的文件传输协议,与ftp有着几乎一样的功能。freeSSHd我在win7系统使用freeSSHd搭建sftp服务下载freeSSHd安装安装路径最后一步:是否运行为系统服务这里需要注意一下,我当时选择的是,这给我造成了不小的麻烦,后面说运行首先右键我的电脑→管理→服务→关闭掉FreeSSHDService服务,它和FreeSSHd只需运行一个,就是因为这个原因耽误了我很长时间连不上sftp以管理员身份运行FreeSSHd桌面图标,这里记着要以管原创 2021-05-27 18:46:16 · 1751 阅读 · 4 评论 -
go第三方日志库uber-go/zap、lumberjack
uber-go/zap、lumberjackzap是uber开源的go语言高性能日志库,lumberjack是zap官方推荐的日志分割库,结合这两个库我们可以在项目中实现完整的日志机制,例如:输出日志到文件、根据文件大小或日期分割等。uber-go/zap安装在项目目录下命令行执行go get -u go.uber.org/zapLogger通过zap.NewDevelopment()或zap.NewProduction()都可以创建一个Logger,它们的主要区别在于NewDev原创 2021-04-26 17:59:31 · 1292 阅读 · 2 评论 -
Go go.mod快速入门,告别GoPath
go modGolang1.11版本开始,引入了官方的包管理工具go mod,也就是依赖管理,项目中go.mod文件是模块定义以及依赖信息集合,类似maven项目中的pom.xml。如何使用1、确保go版本为1.11或更高本文go版本号为1.16.32、开启gomodulego env -w GO111MODULE=on3、设置goproxy使用国内代理提高依赖包下载速度go env -w GOPROXY=https://goproxy.cn4、设置项目goPath项目goP.原创 2021-04-23 16:56:49 · 845 阅读 · 0 评论 -
go-testify和robfig
testify安装testify在项目目录下执行go get github.com/stretchr/testifygo标准测试和testify的区别无论标准测试还是testify测试:go测试文件命名需要是"*_test.go"格式go测试方法命名需要是"Test*(t *testing.T)"格式go标准测试main_test.gopackage mainimport ( "testing")// 测试用例func TestCase(t *testing.T) {原创 2021-04-22 18:26:14 · 224 阅读 · 0 评论 -
go-ini
go-inigo-ini提供了go语言读写ini文件的功能安装ini在项目helloGin路径下go get gopkg.in/ini.v1类似npm给项目安装依赖在项目的goPath下的pkg目录中会出现gopkg.iniidea安装ini插件新建目录ini在helloGin项目下my.ini# 默认分区:""port = 9999# 分区:mysql[mysql]url = 127.0.0.1:3306/helloGinusername = devpass原创 2021-04-21 18:15:47 · 256 阅读 · 0 评论 -
go语言web框架gin的引擎、路由、路由组、中间件
服务器引擎声明服务器引擎实例engine := gin.Default()运行engine.Run()路由路由方法有GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS,还有ANY,可以匹配上述任意请求方法。get、post方法queryString格式package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { // 服务器引擎 engine := gin.D原创 2021-04-20 18:09:02 · 641 阅读 · 0 评论 -
windows下go1.16.3语言web框架gin@v1.7.1环境搭建过程及遇到的问题
为了减少踩坑,应尽量按照本文中的步骤进行,不然会出很多意想不到的错误设置gopathD:\work\goPath安装gingo get -u github.com/gin-gonic/gin报错:go get: module github.com/gin-gonic/gin: Get "https://proxy.golang.org/github.com/gin-gonic/gin/@v/list": dial tcp 216.58.200.241:443: connectex: A .原创 2021-04-19 18:15:00 · 1436 阅读 · 4 评论 -
Java程序员学习Go语言入门笔记-index7
本篇内容:http编程http编程http协议属于应用层协议一个普通的http请求大致的过程如下:HTTP协议:应用层的客户端发送访问web服务器的http请求到网络层,TCP协议:传输层将请求数据进行分割后转发给网络层,IP协议:网络层职责是搜索web服务器地址并传送数据。HttpServicepackage mainimport ( "fmt" "net/http")func handleConn(resp http.ResponseWriter, req *http.原创 2021-04-15 17:05:10 · 202 阅读 · 2 评论 -
Java程序员学习Go语言入门笔记-index6
Java程序员学习Go语言入门笔记-index6网络编程网络协议通信中数据传输和解释的规则分层模型大多网络模型采用分层的方式来组织层与协议网络每一层有自己的协议,这些协议被统称为TCP/IP协议。每层协议的作用:链路层协议主要处理物理信息,例如网卡MAC地址网络层协议主要处理主机信息,例如IP局域网传输层协议主要处理进程信息,例如进程端口号应用层协议规定了应用程序的数据格式Socket编程Socket套接字它提供了进程之间利用网络协议通信的机制TCP协议的C/S架原创 2021-04-14 18:32:24 · 231 阅读 · 1 评论 -
Java程序员学习Go语言入门笔记-index5
Java程序员学习Go语言入门笔记-index5并发编程goroutine协程go协程,是比线程更轻量级的单位goroutine创建并发执行单元由处理器核心按时间片轮转法调度执行package mainimport ( "fmt" "time")func main() { // goroutine创建协程 go func() { // 声明匿名函数 for i := 0; i < 10; i++ { fmt.Println("goroutine输出:", i)原创 2021-04-13 18:45:40 · 199 阅读 · 0 评论 -
Java程序员学习Go语言入门笔记-index4
Java程序员学习Go语言入门笔记-index4异常和文本文件的处理异常处理error接口普通错误package mainimport ( "errors" "fmt")func main() { // 生成方式1 var err1 = errors.New("errors.New err") fmt.Printf("%v\n", err1) // 生成方式2 var err2 = fmt.Errorf("%s", "fmt.Errorf err") fmt.Print原创 2021-04-12 18:41:30 · 272 阅读 · 1 评论 -
Java程序员学习Go语言入门笔记-index3
久违的面向对象编程面向对象编程面向对象编程离不开继承、封装、多态go中没有这些概念,它通过其他的方式实现这些特性继承:匿名属性封装:方法多态:接口匿名属性(匿名字段、匿名组合)匿名字段可以是自定义结构体类型、内置类型、指针类型// 匿名属性/字段package mainimport "fmt"// 自定义结构体Usertype User struct { id int // 结构体成员变量,不需要通过var声明,普通变量需要 no int user原创 2021-04-09 18:45:05 · 270 阅读 · 0 评论 -
Java程序员学习Go语言入门笔记-index2
Java程序员学习Go语言入门笔记-index2复合类型指针pointer默认值:nil(nil相当于Java中的null)内存和指针的区别内存:内存的内容指针:内存的编号,也叫地址package mainimport "fmt"func main() { // 声明方式1:取地址 var i int = 1 var p1 *int = &i // 指向一个合法内存,"*int"是指针类型,"&"取地址 fmt.Printf("i = %v, p1 = %v\n原创 2021-04-08 18:38:41 · 223 阅读 · 0 评论 -
Java程序员学习Go语言入门笔记-index1
基本类型package mainimport "fmt"func main() { // 布尔类型 var flag1 bool // bool布尔类型默认值为false fmt.Println(flag1) flag2 := true // 默认推导类型 fmt.Println(flag2) // 复数类型 com1 := complex(1, 2) // 1 + 2i fmt.Println(real(com1), imag(com1)) // 打原创 2021-04-07 18:47:43 · 211 阅读 · 0 评论 -
Java程序员学习Go语言入门笔记-index0
GO语言环境下载https://golang.google.cn/dl/安装D:\Program Files\GoliteIDE(开发工具)下载https://sourceforge.net/projects/liteide/解压D:\work\tools\liteidex37.4.win64-qt5.14.2\liteide\binhello world// 1、包声明// 程序要运行,必须得有一个main包package main// 2、导入fmt包import原创 2021-04-06 18:51:05 · 271 阅读 · 0 评论