随笔分类 - lang / GO
like
golang1.6版本json包解析嵌套指针的问题小记
摘要:指针的指针问题 本地跑的好好的,测试环境跑的好好,预发布环境(准线上环境),跪了。 起因就是: 1 a := &struct{s:""} 2 json.Unmarshal([]byte{}, &a) 3 fmt.Println(a.s) //报错行 第一行代码进行 &取地址,获得指针变量。 第二行代
阅读全文
循环控制:链表和数组
摘要:循环是常用的流程环节。 1 //链表控制 2 //链表控制的优点,是通过指针来定位,那么循环的过程中,即是可变的,实时性很强。 3 var tmp *datastruct.ListNode 4 tmp = &datastruct.ListNode{Val: -1, Next: nil} 5 6 i
阅读全文
mysql-json类型字段多值并查
摘要:1. 规则 1.1 版本是否支持 5.7.8版本: 支持json类型字段 8.0.17版本: 支持json类型字段多列索引 1.2 环境是否支持 当前环境中使用的是gorm负责mysql的交互。 支持原生sql操作,所以gorm不会妨碍到使用json类型的字段,相关json字段的特性。 正在调研go
阅读全文
go-记录耗时
摘要:r := time.Now() //运行间隔 d := time.Since(r) d就是对r位置,执行到 time.Since位置的间隔,是一个被声明为duration的int类型。 time.Now结构体 type Time struct { //以下来自机翻 //wall和ext分别对壁时间秒
阅读全文
git-module与go-package-挖坑
摘要:短暂的设想过通过git module,来与go-package交叉管理。 挖个坑坑,后续调研一下这块。
阅读全文
关于go-vendor和go-mod
摘要:go vendor在这个时间节点来讲的话,可能有些古典的气质了。 go vendor依旧在go mod的架构来讲,= go mod vendor 这个是当时依赖于goland这个ide的环境中,默认会生成对应当前项目的go path全局变量,此时用 go vendor有一个好处,相当于隔离出一个独立
阅读全文
go-protobuf-googleapis
摘要:googleapis,可用于grpc所需proto生成的依赖代码。 https://github.com/googleapis/googleapis 这个可以存放在一个全局目录中,以供使用。
阅读全文
go-viper-挖坑
摘要:https://github.com/spf13/viper 配置加载包 挖坑,待写。
阅读全文
go-wire-调研中
摘要:https://github.com/google/wire 代码生成器(注入工具)。 详见文档: https://studygolang.com/articles/22266?fr=sidebar 一. 关于依赖问题 1 func wireApp(*dependencyInject) (AppSe
阅读全文
go-grpc-常用与高级特性
摘要:什么是 gRPC?# RPC 全称 (Remote Procedure Call),远程过程调用,指的是一台计算机通过网络请求另一台计算机的上服务,从而不需要了解底层网络细节,RPC 是构建在已经存在的协议(TCP/IP,HTTP 等)之上的,RPC 采用的是客户端,服务器模式。gRPC 是云原生计
阅读全文
go-excelize
摘要:选定扩展包excelize https://github.com/qax-os/excelize 官方文档: https://github.com/xuri/excelize-doc/tree/master/zh-hans教程文档 https://xieys.club/excelize/ https
阅读全文
go-源码-net/http
摘要:go version:1.17 server端相关 /usr/local/go/src/net/http/server.go:3001 服务端等待请求 1 rw, err := l.Accept() /usr/local/go/src/net/http/server.go:1794 服务端接受请求后
阅读全文
go: select-switch
摘要:select: 阻塞通道时,如果均为可执行,则随机挑选执行。 switch: 作为流程控制的一环,是顺序执行。
阅读全文
golang-小技巧:struct嵌套
摘要:go struct 1 type a struct { 2 name string 3 age string 4 } 5 6 type b struct { 7 a // 匿名嵌套结构体 8 name string // 嵌套结构体字段冲突 9 address string 10 } 11 12 a
阅读全文
go-gorm:pool
摘要:gorm官方是给出了关于mysql的线程池的配置。 官方文档地址: https://gorm.io/zh_CN/docs/connecting_to_the_database.html ps: 可知,mysql/sqlLite/TiDB进行了支持。 Connection Pool GORM usin
阅读全文
golang-小技巧:init函数
摘要:每一个包下的go文件内,均可以出现多个init函数。 关于加载顺序,文件之间,以字符排序加载。 文件内的init函数,则以顺序加载。 ps: 很有意思。
阅读全文
golang-小技巧:slice与sort包
摘要:s1 := make([]string, 2) s1[0] = "good" s1[1] = "morning" //根据 val寻找下标 i := sort.SearchStrings(s1, "morning") fmt.Println(i) sort包涉及slice的,主要就3个函数: sor
阅读全文
gin-bindParam
摘要:例子 1 type sParams struct { 2 Name string `form:"name" binding:"required" json:"name"` 3 } 结构体需要保持内部字段可供传递,即控制大小写。
阅读全文
gin-快速入门
摘要:转载自: https://gin-gonic.com/zh-cn/docs/quickstart/ 要求 Go 1.13 及以上版本 安装 要安装 Gin 软件包,需要先安装 Go 并设置 Go 工作区。 1.下载并安装 gin: 1 $ go get -u github.com/gin-gonic
阅读全文