golang
知更鸟女孩
改变不了沙漠,就长成仙人掌
展开
-
一个封装的Goland数据库操作方法集——将sql rows转化成map[string]string
使用原生的Golang进行数据库CRUD感觉到诸多不变,于是参照之前使用数据库类的习惯用法,封装了一个数据库操作方法集:import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "log" "strings" "time")type Dblib struct { db *sql.DB}const ( DRIVER_NAME = "mysql" USER_NAME = "root" PASS_WO原创 2020-06-01 10:39:20 · 2286 阅读 · 1 评论 -
Iris+Redis实战项目应用
目录一、项目结构二、服务器配置1、Redis在配置文件中的配置情况如下:config.json2、读取配置文件初始化服务器配置:config.go3、Redis连接对象实例化:redis.go4、将Session存储方式设置为Redis:main.go5、在Controller家口中使用redis:statis_controller.go三、浏览器请求测试四、过...原创 2020-05-04 17:09:24 · 2634 阅读 · 2 评论 -
Iris之Get/Post/Put等请求及返回格式
目录一、Iris框架的请求处理方式1、GET请求及获取参数(1)处理Get请求(2)处理Get请求 并接受参数2、POST请求及获取参数(1)处理Post请求 form表单的字段获取(2)处理Post请求 Json格式数据(3)处理Post请求 Xml格式数据3、PUT请求4、DELETE请求5、完整代码(1)model(2)main函数二、...原创 2020-05-02 19:36:06 · 5677 阅读 · 0 评论 -
golang之反射常用函数介绍
目录1、通过反射获取到传入变量的type,值、kind2、变量、interface{},reflect.Value相互转化3、反射获取结构体内容4、反射最佳实践反射可以在运行时动态获取变量的各种信息,比如变量的类型、类别。如果是结构体变量,还可以获取到结构体本身的信息(包括结构体字段、方法)。通过反射,可以修改变量的值,可以调用关联的方法1、通过反射获取到传入变量的t...原创 2020-05-01 17:10:43 · 1399 阅读 · 1 评论 -
golang并发之Goroutine & channel完全解读
1、一个通道发送和接收数据,默认是阻塞的。如果只有写数据,会发生死锁;如果只有读数据,也会发生死锁。 在没有使用协程的情况下,如果我们的管道数据已经全部取出,再取就会报fatal error: all goroutines are asleep - deadlock! 当我们给管道写入数据时,不能超过其容量2、关闭通道和通道上范围循环使用内置函数close可以关闭channel...原创 2020-05-01 15:48:55 · 1458 阅读 · 1 评论 -
golang的同步包sync解析——互斥锁/读写锁
1、临界资源访问存在的问题如上图所示,会出现多个窗口卖出同一张票以及卖出负票的问题2、使用WaitGroup等待一组线程的结束由于一旦助携程执行结束,即时其他协程还没有执行完成也会退出,上面例子我们强制在主协程中设置休眠时间,但是这样做不太好,而使用WaitGroup可以解决上述问题WaitGroup用于等待一组线程的结束。父线程调用Add方法来设定应等待的线程的数量。每个被...原创 2020-04-30 22:05:31 · 615 阅读 · 0 评论 -
golang之文件读写/复制/断点续传
目录一、常用读取文件的三种方式(1)利用os和file原生操作读文件(2)使用bufio读取文件(3)使用ioutil读取文件二、常用写文件的三种方式(1)利用os和file原生操作写文件(2)使用bufio写文件(3)使用ioutil写文件三、常用复制文件的四种方式(1)利用os和file原生操作复制文件(2)使用bufio读写操作来复制文件(3)...原创 2020-04-30 17:30:55 · 1557 阅读 · 0 评论 -
一文彻底搞懂go mod使用
一、如何使用go mod下面的函数中使用了iris,所以我们需要先使用go mod下载相关依赖package mainimport ( iris "github.com/kataras/iris/v12")func main() { app := iris.New() app.Get("/", func(ctx iris.Context) { ctx.HTML("&l...原创 2020-04-27 00:39:40 · 10825 阅读 · 4 评论 -
go下载安装使用web框架iris + go mod使用
目录一、go mod介绍1、GO111MODULE2、go mod二、下载安装web框架iris1.打开CMD命令提示框,设置临时环境变量2.再次执行go get github.com/kataras/iris 也可以加 -v -u ,如下三、快速搭建一个MVC模式的web项目1、创建一个新项目【iris】并完成相关代码2、在iris目录下使用初始化生成go....原创 2020-04-24 20:44:43 · 3183 阅读 · 2 评论 -
彻底搞懂golang的GOROOT和GOPATH
目录1、GOPATH 和 GOROOT2、修改 GOPATH 和 GOROOT3、HelloWord——GOPATH版4、一些踩坑经验1、GOPATH 和 GOROOT不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,GOROOT和GOPATHGo开发相关的环境变量如下:GOROOT:GOROOT就是Go的安装目录,(类似于java的JDK)...原创 2020-04-24 15:05:08 · 61205 阅读 · 5 评论 -
golang实现rabbitmq消息队列
目录一、前期准备二、具体实现过程1、通用方法定义2、Simple模式3、工作模式4、Publish订阅模式5、Routine路由模式6、Topic话题模式三、完整代码一、前期准备1、安装rabbitmq(docker):https://blog.csdn.net/qq_38151401/article/details/1033273392、熟悉了解r...原创 2020-04-22 23:05:54 · 3661 阅读 · 0 评论