golang如何用type-switch判断interface变量的实际存储类型
目录用type-switch判断interface的实际存储类型type-switch就刚好帮我解决了这个问题golang任何类型interface{}example1example2用type-switch判断interface的实际存储类型...
目录用type-switch判断interface的实际存储类型type-switch就刚好帮我解决了这个问题golang任何类型interface{}example1example2用type-switch判断interface的实际存储类型...
目录1.问题现象2.问题分析3.问题解决4.解决冲突问题4.1搜狗输入法4.2王牌输入法4.3微软输入法5.总结1.问题现象在编辑器中按Ctrl + shift + F,没有反应,失效。正常结果应该是...
RocketMQ 是什么Github 上关于 RocketMQ 的介绍:
RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型在...
go协程上下文contextgolang的context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等context是golang1.17版本之后才出的特性上下文解...
目录1. 什么是数据流2. grpc的四种数据流2.1 简单模式2.2 服务端数据流模式2.3 客户端数据流模式2.4 双向数据流3. 上代码3.1 代码目录3.2 编写stream.proto文件3.3 编写ser...
目录定义channel管道channel管道塞值和取值通过channel管道实现同步,和数据交互无缓冲的channel有缓冲的channel管道关闭channel管道单向channel管道,读写分离管道消费者生产...
目录go-ini的分区go-ini的安装ini文件的格式读取ini文件的配置项直接加在ini文件,通过方法读取定义结构体来存放配置项,将配置项映射到结构体中父子分区两份关键代码go-ini的...
目录定时器1-"*/5 * * * * *"设置说明定时器2-Timer-TickerTimer-只执行一次Ticker-循环执行Timer延时功能停止和重置定时器定时器Ticker使用定时器1-"*/5 * * * * *"packag...
目录背景举例:未发布的 moduleGo1.18 新特性:多模块(Multi-Module)工作区模式Go1.18 工作区模式初始化一个新的工作区go.work 文件结构go.work 文件优先级高于 go.mod 中定义在...
目录make介绍Makefile介绍Makefile文件教程解析规则概述示例make介绍借助Makefile我们在编译过程中不再需要每次手动输入编译的命令和编译的参数,可以极大简化项目编译过程。...
目录分类数组数组定义结构体结构体继承结构体初始化成员的操作同名字段其它匿名字段非结构体类型结构体指针类型结构体字段实现接口分类类型名称长度默认值说明pointer指针...
目录1概述2为类型添加方法2.1基础类型作为接收者2.2结构体作为接收者3值语义和引用语义4方法集4.1类型 *T 方法集4.2类型 T 方法集5匿名字段5.1方法的继承5.2方法的重写6方...
目录gin跨域解决方案cors1.gocors2.go使用中间件gin跨域解决方案cors1.gopackage middlewaresimport ( "github.com/gin-gonic/gin" "net/http")func Cors() gin.HandlerFun...
目录1. Callbacks1.1. 创建对象1.2. 更新对象1.3. 删除对象1.4. 查询对象1.5. 回调示例1. Callbacks您可以将回调方法定义为模型结构的指针,在创建,更新,查询,删除时将被调用,如...
目录使用zap接收gin框架默认的日志并配置日志归档gin默认的中间件基于zap的中间件在gin项目中使用zap使用zap接收gin框架默认的日志并配置日志归档我们在基于gin框架开发项...
目录validator库参数校验若干实用技巧基本示例翻译校验错误提示信息自定义错误提示信息的字段名自定义结构体校验方法自定义字段校验方法自定义翻译方法validator库参数校验...
目录消费者生产者消费者package mainimport ( "fmt" "github.com/streadway/amqp")func failOnError(err error, msg string) { if err != nil { fmt.Println("%s: %s", ms...
目录Context包到底是干嘛用的?context原理什么时候应该使用 Context?如何创建 Context?主协程通知有子协程,子协程又有多个子协程context核心接口emptyCtx结构体BackgroudTODOva...
目录1. 连接数据库1.1 MySQL1.2 PostgreSQL1.3 Sqlite31.4 不支持的数据库2. 迁移2.1. 自动迁移2.2. 检查表是否存在2.3. 创建表2.4. 删除表2.5. 修改列2.6. 删除列2.7. 添...
目录1. 关联1.1. 属于1.2. 包含一个1.3. 包含多个1.4. 多对多1.5. 多种包含1.6. 关联模式1. 关联1.1. 属于// `User`属于`Profile`, `ProfileID`为外键type User struct {...
目录在Go语言项目中使用Zap日志库介绍默认的Go Logger日志库实现Go Logger设置Logger使用LoggerLogger的运行Go Logger的优势和劣势优势劣势Uber-go Zap日志库为什么选择Ube...
目录什么是JWT?为什么需要JWT?生成JWT和解析JWT定义需求生成JWT解析JWT在gin框架中使用JWT什么是JWT?JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了...
目录类型查询1.comma-ok断言2. switch测试类型断言类型查询我们知道interface的变量里面可以存储任意类型的数值(该类型实现了interface)。那么我们怎么反向知道这个变量里...
目录Go语言-Go 接口的最佳实践什么是Golang中的interface编写接口的最佳实践1. 保持interfaces足够小2. Interfaces Should Have No Knowledge of Satisfying Types3. 接口...
目录上传文件文件返回给前端中间件中间件调用两种方式单个中间件多个中间件上传文件package mainimport ( "fmt" "github.com/gin-gonic/gin")func main() { router := gin....
目录1、for循环2、for-each语法3、break的使用4、continue的使用5、goto的使用1、for循环写法基本和其他语言一致,只是没有了while循环,用for代替while。样例代码如下// for循...
目录1. 更新日志1.1. v1.01.1.1. 破坏性变更gorm执行sql1. 更新日志1.1. v1.01.1.1. 破坏性变更gorm.Open返回类型为*gorm.DB而不是gorm.DB更新只会更新更改的字段大多数应...
目录前言优雅地关机什么是优雅关机?如何实现优雅关机?优雅地重启总结前言我们编写的Web项目部署之后,经常会因为需要进行配置变更或功能迭代而重启服务,单纯的kill -9 pid的方式...
目录swagger介绍gin-swagger实战第一步:添加注释第二步:生成接口文档数据第三步:引入gin-swagger渲染文档数据swagger介绍Swagger本质上是一种用于描述使用JSON表示的RESTful A...
目录1.什么是接口2.接口定义3.多态多态加减计算器4.接口继承与转换5.空接口6.接口转换7.实现map字典接口8.interface案例1.什么是接口接口就是一种规范与标准,在生活中经常见...
目录第一步初始化修改启动端口get请求url取参数Post请求获取form参数模型绑定ShouldBindShouldBindJSONShouldBinduriShouldBindQuery自定义验证器,表单验证第一步初始化1.新...
目录1. 高级用法1.1. 错误处理1.2. 事物1.2.1. 一个具体的例子1.3. SQL构建1.3.1. 执行原生SQL1.3.2. sql.Row & sql.Rows1.3.3. 迭代中使用sql.Rows的Scan1.4. 通用数据库...
目录Viper安装什么是Viper?为什么选择Viper?把值存入Viper建立默认值读取配置文件写入配置文件监控并重新读取配置文件从io.Reader读取配置覆盖设置注册和使用别名使用环境变...
目录前言为什么需要实时加载?Air介绍安装AirGoMacOSLinuxWindowsDcoker使用Airair_example.conf示例效果演示前言今天我们要介绍一个神器——Air能够实时监听项目...
目录环境搭建1.开启gomod设置代理2.安装beego和bee3.升级bee4.zsh: command not found: bee5.bee相关命令6.项目启动7.beego项目结构分析环境搭建下载安装beego,bee1.开启go...
目录axios-GET请求Gin-GET响应Vue-POST请求Gin-POST响应axios-GET请求created() { console.log('该组件要被加载成功了') this.$axios({...
目录1. orm读写数据1. 创建1.1. 创建记录1.2. 默认值1.3. 在Callbacks中设置主键1.4. 扩展创建选项2. 查询2.1. Where查询条件 (简单SQL)2.2. Where查询条件 (Struct & Map)...
目录Elasticsearch介绍Elasticsearch能做什么go语言操作es解决golang使用elastic连接elasticsearch时自动转换连接地址初始化数据创建查找修改删除查找集群搭建Elasticsearc...
目录01 Go中的泛型是什么1.1 传统的函数编写方式1.2 泛型函数编写方式02 从泛型被加入之前说起2.1 针对每一种类型编写一套重复的代码2.2 使用空接口并通过类型断言来判定具...
目录update_by_query批量修改索引添加字段查询es发送MQupdate_by_query批量修改POST post-v1_1-2021.02,post-v1_1-2021.03,post-v1_1-2021.04/_update_by_query{ "query":...
目录字符串字符串转义符byte和rune类型修改字符串类型转换总结字符串Go语言中的字符串以原生数据类型出现。 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引...
目录两个跳转语法模型创建获取post请求传过来的值获取字符串获取文件获取文件后缀orm查询表所有数据前端循环语法前端格式化时间前端url传值方式两个跳转语法第一个参数是请...
Cookie用来解决http协议无状态的问题。首先,在服务端生成Cookie,然后在http响应header中设置Set-Cookie字段,客户端会读取到Set-Cookie字段后,会将cookie信息存储起来,下次继续访...
目录1. 字节数组2. 头尾处理3. 位置索引4. 替换5. 统计次数6. 重复7. 大小写8. 去除字符9. 字符串切片处理10. 数值处理1. 字节数组字节与字符的区别字节(Byte) 是计量单位,...
目录MatrixOne数据库是什么?Go汇编介绍为什么使用Go汇编?为什么不用CGO?Go汇编语法特点操作数顺序寄存器宽度标识函数调用约定对写Go汇编代码有帮助的工具avotext/template在G...
目录1、安装protoc2、安装protoc的Golang gRPC插件3、编写proto文件4、生成gRPC代理代码5、编写gRPC服务端程序6、编写gRPC客户端程序7、运行程序gRPC是Google发起的一个开...
json数据格式参见json数据格式说明。如果没操作过json数据,建议先看下上面的文章,有助于理解本文后面的内容。Go json包Marshal():Go数据对象 -> json数据
UnMarshal():Json数据...
本文只介绍template的语法和用法,关于template包的函数、方法、template的结构和原理,见:深入解析Go template模板使用详解。入门示例以下为test.html文件的内容,里面使用了一个...
目录一 引入jwt二 框架中引入jwt三 使用一 引入jwtjwt用户身份验证go get github.com/dgrijalva/jwt-go二 框架中引入jwtimport ( "fmt" "github.com/astaxie/beego" "githu...
HttpRouter是一个轻量级但却非常高效的multiplexer。手册:https://godoc.org/github.com/julienschmidt/httprouterhttps://github.com/julienschmidt/httprouter用法示例pac...