随笔分类 -  lang / GO

like
执行a包时,怎么调度b包init函数
摘要:在 Go 中,当一个包被导入时,该包中的 init 函数会在程序执行开始时自动被调用。但是,直接导入 a 包时无法保证 b 包的 init 函数被调用。如果你希望在导入 a 包时同时调用 b 包的 init 函数,你可以在 a 包中手动导入 b 包,这样在 a 包被导入时,b 包的 init 函数也 阅读全文
posted @ 2024-03-18 17:40 黑熊一只 阅读(4) 评论(0) 推荐(0) 编辑
键值对象的设计
摘要:键值对对象与工厂、与组合复用等关系 键值对对象(Key-Value Pair Objects,简称KV Pairs)是一种数据结构,在许多编程语言中广泛应用,如JavaScript中的对象、Python中的字典等。键值对对象可以看作是映射关系的集合,每个键关联一个唯一的值。 与工厂模式的关系: 在设 阅读全文
posted @ 2024-01-26 18:03 黑熊一只 阅读(5) 评论(0) 推荐(0) 编辑
go耗时函数
摘要:本质上依旧为记录时间,进行相减操作的思路。 func CostStaticDemo() { // 开始计时 start := time.Now() // 执行函数 sum := sum(1000000) // 结束计时 end := time.Now() // 计算耗时 duration := en 阅读全文
posted @ 2023-12-23 11:31 黑熊一只 阅读(8) 评论(0) 推荐(0) 编辑
goENV环境变量
摘要:GO111MODULE="" // 是否使用mod包管理 当前推荐设置值为 on GOARCH="arm64" // 当前芯片架构 某些老包限制支持cpu的架构种类 可以通过修改芯片类型来曲线救国 GOBIN="/Users/test/go/bin" // go 一些安装软件的bin路径 比如: d 阅读全文
posted @ 2023-12-18 16:54 黑熊一只 阅读(92) 评论(0) 推荐(0) 编辑
go:fnv与idGenerator
摘要:fnv 属于hash生成算法的一个方向。 具体参考git地址: FNV-1a/fnv1a.go at master · romain-jacotin/FNV-1a (github.com) 这是一个包含多种长度生成hash值的算法。 idGenerator 类似一个基础插件,or 中间件的服务。 字 阅读全文
posted @ 2023-12-08 16:37 黑熊一只 阅读(5) 评论(0) 推荐(0) 编辑
grpcUsePath进行建立通道
摘要:目前官方不支持,后续贴资料。 阅读全文
posted @ 2023-11-10 18:47 黑熊一只 阅读(5) 评论(0) 推荐(0) 编辑
关于fieldMask在go项目使用
摘要:介绍: Netflix API 设计实践: 使用FieldMask (qq.com) 该文章,详述了关于proto中,使用fieldMask的背景及收益,还有具体example提供参考。 接下来,需要考虑在go项目中的使用。 主要为以下几方面: 1. 服务端需要提供新的proto文件 2. 客户端需 阅读全文
posted @ 2023-11-07 14:30 黑熊一只 阅读(23) 评论(0) 推荐(0) 编辑
go项目芯片选择
摘要:mac自家芯片,导致一些包无法加载,可以通过变更go环境变量,让芯片架构名字同步修改。 示例: GOARCH=amd64 export GOARCH=amd64 阅读全文
posted @ 2023-11-01 14:47 黑熊一只 阅读(9) 评论(0) 推荐(0) 编辑
grpc服务报错: http2 frame too large
摘要:报错如下: 1 4xx BadRequesterror reading server preface: http2: frame too large 其中4xx为客户端报错中的一个具体数字。比如: 404/415,仅以报错举例,且出现报错码不固定。 但是error msg的核心内容不变: frame 阅读全文
posted @ 2023-10-15 10:47 黑熊一只 阅读(1176) 评论(0) 推荐(0) 编辑
kratos
摘要:1. 安装 1.1 环境准备 go proto protoc-gen-go 环境变量: 通过 go env查看相关变量设置是否正常,比如mod是否开启,goproxy是否设置为国内代理。 go env -w GOPROXY="" #涉及扩展软件 - mac版 # brew包管理器安装 brew in 阅读全文
posted @ 2023-09-04 14:46 黑熊一只 阅读(31) 评论(0) 推荐(0) 编辑
golang-groutine有序调度
摘要:本质上还是通过channel的队列性质(FIFO)来实现的,以这个思路为主。 1 func test1() { 2 var wg sync.WaitGroup 3 4 var ch1 = make(chan int, 1) 5 var ch2 = make(chan int, 1) 6 var ch 阅读全文
posted @ 2023-07-30 22:15 黑熊一只 阅读(13) 评论(0) 推荐(0) 编辑
go-struct指针与值传递
摘要:示例如下 1 type compare0 struct { 2 version1 string 3 version2 string 4 } 5 func (c compare0) setV1(str string) string { 6 c.version1 = str 7 return c.ver 阅读全文
posted @ 2023-05-06 18:31 黑熊一只 阅读(26) 评论(0) 推荐(0) 编辑
golang1.6版本json包解析嵌套指针的问题小记
摘要:指针的指针问题 本地跑的好好的,测试环境跑的好好,预发布环境(准线上环境),跪了。 起因就是: 1 a := &struct{s:""} 2 json.Unmarshal([]byte{}, &a) 3 fmt.Println(a.s) //报错行 第一行代码进行 &取地址,获得指针变量。 第二行代 阅读全文
posted @ 2023-04-27 12:37 黑熊一只 阅读(57) 评论(0) 推荐(0) 编辑
循环控制:链表和数组
摘要:循环是常用的流程环节。 1 //链表控制 2 //链表控制的优点,是通过指针来定位,那么循环的过程中,即是可变的,实时性很强。 3 var tmp *datastruct.ListNode 4 tmp = &datastruct.ListNode{Val: -1, Next: nil} 5 6 i 阅读全文
posted @ 2023-04-26 15:30 黑熊一只 阅读(12) 评论(0) 推荐(0) 编辑
mysql-json类型字段多值并查
摘要:1. 规则 1.1 版本是否支持 5.7.8版本: 支持json类型字段 8.0.17版本: 支持json类型字段多列索引 1.2 环境是否支持 当前环境中使用的是gorm负责mysql的交互。 支持原生sql操作,所以gorm不会妨碍到使用json类型的字段,相关json字段的特性。 正在调研go 阅读全文
posted @ 2023-04-21 19:01 黑熊一只 阅读(401) 评论(0) 推荐(0) 编辑
go命名规范
摘要:注意别使用 *_test.go的命名风格即可,这个是go test单元测试的标准格式。 阅读全文
posted @ 2023-04-21 18:07 黑熊一只 阅读(13) 评论(0) 推荐(0) 编辑
go-记录耗时
摘要:r := time.Now() //运行间隔 d := time.Since(r) d就是对r位置,执行到 time.Since位置的间隔,是一个被声明为duration的int类型。 time.Now结构体 type Time struct { //以下来自机翻 //wall和ext分别对壁时间秒 阅读全文
posted @ 2023-04-11 17:42 黑熊一只 阅读(31) 评论(0) 推荐(0) 编辑
git-module与go-package-挖坑
摘要:短暂的设想过通过git module,来与go-package交叉管理。 挖个坑坑,后续调研一下这块。 阅读全文
posted @ 2023-03-25 11:51 黑熊一只 阅读(11) 评论(0) 推荐(0) 编辑
关于go-vendor和go-mod
摘要:go vendor在这个时间节点来讲的话,可能有些古典的气质了。 go vendor依旧在go mod的架构来讲,= go mod vendor 这个是当时依赖于goland这个ide的环境中,默认会生成对应当前项目的go path全局变量,此时用 go vendor有一个好处,相当于隔离出一个独立 阅读全文
posted @ 2023-03-25 11:24 黑熊一只 阅读(289) 评论(0) 推荐(0) 编辑
go-protobuf-googleapis
摘要:googleapis,可用于grpc所需proto生成的依赖代码。 https://github.com/googleapis/googleapis 这个可以存放在一个全局目录中,以供使用。 阅读全文
posted @ 2023-03-13 13:57 黑熊一只 阅读(18) 评论(0) 推荐(0) 编辑