![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
文章平均质量分 55
Go语言学习记录
Last-Week
正在学习C++的小弱鸡
展开
-
Go语言使用JWT
Go语言使用JWT原创 2022-06-07 23:32:59 · 1011 阅读 · 0 评论 -
Go语言使用zap日志库
Go语言使用zap日志库原创 2022-06-07 23:31:37 · 1308 阅读 · 0 评论 -
错误:note: module requires Go 1.17
安装GO语言原创 2022-06-05 02:25:57 · 11154 阅读 · 0 评论 -
Golang Viper库入门教学
本文主要介绍Go语言项目中如何使用Viper来管理配置信息原创 2022-06-03 02:23:13 · 614 阅读 · 0 评论 -
GOPATH,go vendor,go mod解析
GOPATH早期Go语言使用GOPATH来进行依赖管理。安装Go语言之后,我们需要配置环境变量,GOROOT,GOPATH。GOROOT代表Go语言的安装目录,GOPATH代表你的工作路径。GOPATH下的目录结构– bin 存放编译后生成的二进制可执行文件– pkg 存放编译后生成的 .a 文件– src 存放项目的源代码,可以是你自己写的代码,也可以是你 go get 下载的包GOPATH├── bin├── pkg└── src ├── projectA ├──原创 2022-05-13 20:51:09 · 914 阅读 · 0 评论 -
Golang 解析JSON
什么是JSONJSON: JavaScript Object Notation(JavaScript 对象表示法)JSON 是存储和交换文本信息的语法,类似 XML。JSON 比 XML 更小、更快,更易解析。JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。简单来说,这种结构储存数据有许多优点,我们喜欢使原创 2022-05-08 22:39:06 · 1848 阅读 · 0 评论 -
Golang 单元测试
想要测试Go代码需要依赖go test命令,需注意如下事项在包目录内所有测试文件必须以_test.go结尾,go build不会把这些测试文件编译到最终的可执行文件中。在_test.go文件中,单元测试函数的名字须以TestXxxx的形式每个单元测试函数的参数必须为*testing.T,参数t用于报告测试是否失败以及日志信息。func TestAdd(t *testing.T) {}func TestSum(t *testing.T) {}testing.T参数的拥有的方法如下:func原创 2022-05-08 22:22:49 · 574 阅读 · 0 评论 -
(Go Web) 接受请求
Go Web 接收请求因为HTTP是一种无连接协议,通过这种协议发送给服务器的请求对服务器之前处理的请求一无所知,所以应用程序才会采取cookie的方式在客户端实现数据持久化,并以会话的方式在服务器上实现数据持久化。为了降低使用cookie和session的复杂性,Web应用框架通常会提供一个统一的接口,用于在连接直接提供持久化。对Go来说,隐藏在框架下的通常是net/http和html/template库启动Web服务器最简单的 Web 服务器package mainimport ( "n原创 2022-05-06 16:56:14 · 375 阅读 · 0 评论 -
Golang error解析
error是什么?// The error built-in interface type is the conventional interface for// representing an error condition, with the nil value representing no error.type error interface { Error() string}可以看到,error就是一个接口,其中包含Error() string方法。从Error()的返回值也可以推断原创 2022-05-06 12:45:19 · 268 阅读 · 0 评论 -
Error 1044: Access denied for user ‘syz-remote‘@‘%‘ to database ‘webapp‘
Error 1044: Access denied for user ‘syz-remote’@‘%’ to database ‘webapp’起因:我在测试Golang连接数据库的代码,好不容易重装了MySQL并且设置了远程登录,但是仍然出现了这个问题。我的syz-remote这个账户是专门为了远程登录创建的账户,因此它与root用户不同,灭有得到应有的权限。我们需要在MySQL里面设置它的权限。通过此代码查看MySQL账户权限mysql> SELECT host,user,password原创 2022-05-03 18:20:38 · 893 阅读 · 0 评论 -
Golang goroutine
Golang并发介绍操作系统会在物理处理器上调度线程来运行,而 Go 语言的运行时会在逻辑处理器上调度goroutine来运行。每个逻辑处理器都分别绑定到单个操作系统线程。这些逻辑处理器会用于执行所有被创建的goroutine。即便只有一个逻辑处理器,Go也可以以神奇的效率和性能,并发调度无数个goroutine。goroutine示例package mainimport ( "fmt" "runtime" "sync")func main() { // 分配一个逻辑处理器给调度原创 2022-05-01 22:47:47 · 526 阅读 · 0 评论 -
gin框架安装
GitHub官方gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance – up to 40 times faster. If you need smashing performance, get yourself some Gin. (github.com)go env -w GOPROXY=https:/原创 2022-05-01 22:31:16 · 451 阅读 · 0 评论 -
Golang 方法
Golang 方法方法和函数很像,但是方法多出了一个接收者,其实方法是类似成员函数这的存在。如下就是一个案例,我们定义了结构Employee并给他增加了一个displaySalary()的方法package mainimport "fmt"type Employee struct { name string salary int currency string}// Employee的方法func (e Employee) displaySalary() { fmt原创 2022-04-30 23:55:32 · 131 阅读 · 0 评论 -
Golang 接口
接口介绍接口是一种比较抽象的类型,它不想struct一样,里面有我们想要的数据类型,接口里面只有接口方法。我们可以利用接口所提供的方法,但是我们并不知道接口里方法的具体实现。如果要实现一个接口,必须实现这个接口提供的所有方法示例代码使用接口实现多态package mainimport "fmt"// 声明了person接口,内含一个printfInfo方法type person interface { printfInfo()}// student 结构type student原创 2022-04-30 23:57:24 · 179 阅读 · 0 评论 -
Golang 函数
函数声明func 函数名(参数, 参数) 返回类型func add(x int, y int) int 可以简写参数类型func add(x, y int) int 函数类型称作函数签名,当两个函数的形参列表和返回列表相同时,认为这两个函数的类型是相同的。注意,与函数返回类型无关。package mainimport "fmt"func add(x int, y int) int { return x + y}func main() { fmt.Println(add(1,原创 2022-04-30 23:56:08 · 146 阅读 · 0 评论 -
(Go Web)第一个程序
基本知识任何Web英语都包含处理器和模板引擎,这两个主要部分分别与HTTP协议的请求和相应相对于处理器负责接收HTTP请求并处理它们模板引擎负责生成HTML,这些HTML之后会作为HTTP响应的其中一部分被回传至客户端hello world程序package mainimport ( "fmt" "net/http")// 参数:一个是写发送响应报文的路口,一个是获取到的请求信息,调用Fprintf向目标地方写响应信息func handler(write http.Respon原创 2022-04-29 12:35:00 · 100 阅读 · 0 评论 -
Go语言flag包解析
flag包使用Go语言中的 flag 包中,提供了命令行参数解析的功能。有关命令行参数概念命令行参数(或参数):是指运行程序时提供的参数;已定义命令行参数:是指程序中通过 flag.Type 这种形式定义了的参数;非 flag(non-flag)命令行参数(或保留的命令行参数):可以简单理解为 flag 包不能解析的参数。flag.Type()flag.Type(flag 名, 默认值, 帮助信息) *Type实例代码package mainimport ( "flag" "原创 2022-04-30 12:53:31 · 1140 阅读 · 1 评论 -
Golang Map
Golang map学习在Go语言中,map是散列表的引用,map的类型是map[K]V,类似我们C++的unordered_map声明和初始化// 给定名字得到年龄ages := make(map[string]int) // 创建并初始化(可以设置我们想要的值)ages := map[string]int{ "alice": 31, "charlie": 34,}不指定任何键值对,得到一个空mapages := map[string]int{}创建一个nil原创 2022-04-30 15:52:59 · 433 阅读 · 0 评论 -
GoLang 切片
slice简介slice表示一个拥有相同类型元素的可变长度的序列(动态数组),我们也叫做切片。slice有三个属性:指针、长度和容量。指针指向数组的第一个可以从slice访问的元素,这个元素不一定是数组的第一个元素。长度指slice的元素个数容量的大小是从slice的起始元素到底层数组的最后一个元素间元素的个数。slice的初始化slice := make([]int, 5) // 内置make函数slice := make([]int, 5, 10) // 创建长度为5,容量为10的原创 2022-04-29 23:15:54 · 163 阅读 · 0 评论 -
Golang 数组
Golang数组数组是具有固定长度且拥有零个或多个相同数据元素的序列。数组存储的类型可以是内置类型,比如整型或者字符串,也可以是自定义的数据结构。因为是连续的,所以索引比较好计算,所以我们可以很快的索引数组中的任何数据。数组的声明和初始化var array [5]int以上我们声明了一个数组array,但是我们还没有对他进行初始化,这时候数组array里面的值,是对应元素类型的零值。数组的初始化var array [5]int = [5]int{1,2,3,4,5}array := [5原创 2022-04-29 22:24:58 · 879 阅读 · 0 评论