
golang学习
文章平均质量分 68
fcopy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Golang项目:实现生产者消费者模式
因为,如果我们没有先关闭控制channel,那么消费者和生产者就都还没有收到停止的消息,在两行语句的时间差中,会发生很多写入channel的操作。多对多模式,消费者和生产者都不主动退出,我们通过一个第三方信号来控制退出。同时创建one-one.go文件,来实现单生产者单消费者模型。如果先关闭数据channel,在关闭控制channel。Chanel的线程安全的,所以可以直接执行并发操作。报错,说我们往关闭了的channel里写数据。所以我们要先关闭控制channel。这时候我们关闭channel。原创 2024-11-26 17:00:40 · 695 阅读 · 0 评论 -
Golang项目:实现一个内存缓存系统
unsafe.Sizeof 来获取一个接口值(interface{})的大小时,它实际上返回的是接口结构体本身的大小,而不是接口中存储的具体值的大小。现在的问题是,我们只是设置了,在过期之后,就不能访问了,但是实际上还占用着缓存,只有在再一次Get的时候,发现过期了,才会删除掉。使得我们的Set方法的time部分参数为可选择填写0-n个参数,但我们只使用第一个expire[0]作为我们使用的参数。我们在cache目录中,新建一个单元测试,memCache_test.go。如:get,add,del操作。原创 2024-11-24 16:28:39 · 581 阅读 · 0 评论 -
golang开源框架:命令行框架cobra
四个钩子函数执行顺序:PreRun --》Run --》接下来,我们来看继承import ("fmt"fmt.Println("钩子案例,run函数")},//run函数之前执行},//run函数之后执行},// run之前},//run之后},fmt.Println("钩子案例,run函数")},//run函数之后执行},//run之后},可以看到,我们没有写PersistentPreRun()和PostRun。原创 2024-11-19 17:20:48 · 810 阅读 · 0 评论 -
golang开源框架:go开源验证框架validator
当我们从map进入dive之后,就会发现有两个值key和value,可以先验证key再验证value。gte=5,lte=10,number ---- 是大于等于5小于等于10的数字。如果表示字符串,而是直接是数字,那么number和numeric就没有区别。对于数字类型的字符串,需要用numeric来校验(它可以校验小数点)中第一个满足了第一维度有3个,但是第二维度大于5个则都不满足。可以验证slice的长度,至于内容,看本文第三节。可以看到,第三个报错,OpCode只能是1或者2。原创 2024-11-18 21:53:10 · 693 阅读 · 0 评论 -
Golang云原生项目:—实现ping操作
记住,运行时需要以管理员身份,才能解析socket。测试显示,可以成功拿到命令行的参数。定义ICMP报文格式。原创 2024-11-17 20:04:44 · 412 阅读 · 0 评论 -
GOLANG笔记第四周
原本的本地函数放到另一个服务器上运行,但是引入了很多新问题Call 的id映射序列化和反序列化网络传输。原创 2024-11-15 13:09:48 · 1129 阅读 · 0 评论 -
go debug日记:protoc -I . helloworld.proto --go_out=plugins=grpc:.错误debug
用来生成与 gRPC 相关的代码(例如 gRPC 服务的客户端和服务器代码)。path 表示生成的go文件的存放地址,会自动生成目录的。用来生成常规的 Go 代码(例如消息的 Go 结构体)。插件中,gRPC 相关的 Go 代码不再通过 –运行成功,生成helloworld.pb.go文件。即,没有指定生成的go文件位置,需要在文件中添加。使用protoc生成go的文件出现bug。name 表示生成的go文件所属的包名。原创 2024-11-14 12:18:47 · 407 阅读 · 0 评论 -
GOLANG笔记第三周
随便写写的学习笔记原创 2024-09-26 20:19:45 · 536 阅读 · 0 评论