
go
micro_cloud_fly
希望在这里能向各位网友学习到真本事.愿自己和中国一同成长进步,达到世界一流水平
展开
-
go grpc 四种数据交互方式
项目的目录结构.├── Makefile├── client│ └── main.go├── go.mod├── go.sum├── pb│ ├── entity.pb.go│ └── entity.proto└── server └── main.goproto文件介绍syntax = "proto3";option go_package = "../pb";package pb;service Query{ //通过城市名称获取天气预报详细信原创 2022-04-13 16:14:35 · 600 阅读 · 0 评论 -
grpc学习笔记
新建目录```gomkdir study_grpc01```原创 2022-03-24 15:51:14 · 555 阅读 · 0 评论 -
protoc-buffer 学习笔记
文档地址:https://developers.google.cn/protocol-buffers/docs/proto3#simple原创 2022-03-16 15:39:13 · 130 阅读 · 0 评论 -
使用golang实现rpc(1)
使用golang官方库net/rpc服务端package mainimport ( "fmt" "log" "net" "net/http" "net/rpc" "os")type Rectangle struct {}type RectangleRequest struct { Length int Width int}type RectangleResponse struct { Area int Perimeter int}// Are原创 2022-03-04 15:28:36 · 115 阅读 · 0 评论 -
golang中让人迷惑的defer、return、命名返回值、匿名返回值
demo01package mainimport "fmt"func main() { fmt.Println("开始") fmt.Println(1) fmt.Println(2) fmt.Println(3) fmt.Println("结束")}打印:开始123结束demo02package mainimport "fmt"func main() { fmt.Println("开始") defer fmt.Println(1) defer fmt.原创 2022-03-04 11:50:40 · 672 阅读 · 0 评论 -
递归的性能测试
先看一段熟悉的代码package mainimport ( "fmt" "time")func main() { result := 0 start := time.Now() for i := 1; i <= 40; i++ { result = fibonacci(i) fmt.Printf("数列第 %d 位: %d\n", i, result) } end := time.Now() del原创 2022-02-24 17:31:35 · 172 阅读 · 0 评论 -
golang中json的处理
结构体中数字类型与string类型的处理package mainimport ( "encoding/json" "fmt")/** * @author micro.cloud.fly * @date 2022/2/10 5:24 下午 * @desc */type Person struct { Id int `json:"id,string"` Age int `json:"age,string"`}func main() { p := Person{ Id原创 2022-02-11 11:03:16 · 606 阅读 · 0 评论 -
beeg中orm的坑
在使用beego的orm的过程中,基本是使用文档进行开发,但是有一处我没有细看文档,于是在开发的过程中,就产生了一些疑问,有这些疑问后,我就要清楚到底是怎么回事疑问如果在beego框架中的controller中开启了事务,既不进行提交事务,也不进行回滚事务,会发生什么?示例代码func (controller *CalendarController) Test() { //此处开启事务 tx, err := global.ORM.Begin() logs.Info(err) //此处更新.原创 2022-02-10 11:23:34 · 4478 阅读 · 0 评论 -
go中的map和sync.Map
map 和 sync.Map在go中,map是非线程安全的,就是说当多个协程来操作同一个map时,可能发生报错,下面是一个示例package mainimport ( "fmt" "strconv" "sync")func main() { var m1 = make(map[string]int) fmt.Println("vim-go") wg := sync.WaitGroup{} for i := 0; i < 50; i++ { go func(i int)原创 2022-01-24 09:53:27 · 519 阅读 · 0 评论 -
300行代码用go搞定聊天室
前言学过Java的同学在学习socket编程章节的时候,应该都有使用socket编码实现聊天室的经历,在我看了go的socket的编程的基础知识之后,回想着Java的聊天室的经历,同时看到网上有go语言实现的聊天室的资料,看着设计的功能,于是自己编码实现,里面加入了一些的自己的个人喜好。同学们看着代码,可以自行修改功能,仅作娱乐。核心技术需要对go语言对管道有比较熟练的操作与认识需要对协程知识了解需要了解socket编程了解网页爬虫(可选)需要了解正则表达式对使用需要了解锁机制了解io原创 2021-04-27 21:46:50 · 186 阅读 · 0 评论 -
go语言中的协程
go语言中的协程类似与java中的线程,但是又有一些区别,首先我们来说两个容易混淆的概念并发:一般是指多个线程竞争cpu资源,只有竞争到cpu资源的线程,才能被系统分配一个极小的时间段去执行这个线程,这样多个线程每次都会被分配一些极短的时间片来执行,看似是同时执行了,但是对于单核的cpu来说,其实是交替执行,只不过看起来是同时执行一样并行:一般是指在多核cpu上,有多个线程被分配到了不同的cpu上进行同时执行了,这是真正意义上的同时执行。但是假如有4个cpu,但是有8个线程,那么此时会既有并发原创 2021-04-01 16:22:56 · 417 阅读 · 0 评论 -
sqlyog导入excel数据
原创 2018-01-30 11:53:17 · 1028 阅读 · 0 评论 -
linux 服务器部署go工程
linux安装go环境这里不做讲解假设gopath GOPATH="/root/go" 那么把工程上传到这个/root/go/src/ 这个目录下,假设工程名字是future,那么cd /root/go/src/future 执行go build,这时候cd future后ls会发现多了一个绿色的future文件 这个时候如果只想执行一个(关闭putty的时候自动停止运行)执行./futur原创 2015-07-16 09:55:52 · 5279 阅读 · 0 评论