![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
托马斯的冰淇淋
这个作者很懒,什么都没留下…
展开
-
golang RPC相关笔记
rpc使用步骤服务端注册rpc 的服务对象。给对象绑定方法 rpc.RegisterName("服务名",回调对象)1.需要定义类2.需要绑定类方法需要创建监听器listener,err := net.Listen()建立链接conn,err := listener.Accept()将链接绑定 rpc服务rpc.ServerConn(conn)客户端用rpc链接服务器 rpc.Dial()conn,err:=rpc.Dial()调用远程原创 2021-04-27 15:39:33 · 184 阅读 · 1 评论 -
Const initializer ‘protoimpl.EnforceVersion(20 - protoimpl.MinVersion)‘ is not a constant
错误场景:下载好protoc 然后 生成好 protoc-gen-go.exe后 转化protobuf 文件 出现如下错误去掉这个沟沟然后现在就不会报错了!原创 2021-04-27 14:57:31 · 1368 阅读 · 5 评论 -
golang protobuf的安装/使用以及注意事项
protoBuf1.下载protochttps://github.com/protocolbuffers/protobuf/releases下载后解压文件获取bin目录下的protoc.exe文件 复制到%gopath%\bin 文件夹下面2.protoc-gen-go 安装 1.在 gopath 的src目录下 新建 google.golang.org\protobuf\ ,然后进入该路径执行git clone https://e.coding.net/robinqiwei/goo原创 2021-04-26 10:37:40 · 652 阅读 · 0 评论 -
golang:defer关键字的使用方法
package mainimport ( "fmt" "os")//defer 延迟关键字 可用于修饰语句 函数 确保 这条语句可以在当前栈退出的时候执行//一般用于做资源清理工资//解锁关闭文件//在同一个函数多次调用defer 执行时 蕾仕于栈的机制 先后入后出func main() { readFile()}func readFile() { f, err := os.Open("q.txt") defer f.Close() if err != nil { f原创 2021-04-26 10:19:40 · 78 阅读 · 0 评论 -
goto,break,continue使用方法。。。
package mainimport "fmt"func main() { //标签 // goto 下次进入循环时 i不会保存之前的状态 重新从0开始计算 重新来过 // break 直接跳出指定位置的循环 // continue 会跳到指定的位置 但是会记录之前的状态 i变成了1LABLE1: for i := 0; i < 5; i++ { for j := 0; j < 5; j++ { if j == 3 { //goto LABLE1 /原创 2021-04-26 10:18:18 · 97 阅读 · 0 评论 -
goroutine模拟:读通道 和写通道的使用
package mainimport ( "fmt" "time")//1.单向 读通道//var numChanRand <- chan int//2.单向 写通道//var numWriteChan chan <- int////生产消费者模式//consumer 消费者 提供一个只读通道//producer 生产者 只提供写的通道func main() { // 1.主函数创建一个双向通道 numChan numChan := make(chan int原创 2021-04-26 10:14:29 · 111 阅读 · 0 评论 -
goroutine:如何判断管道是否已经关闭
package mainimport "fmt"//func main() { var numChan = make(chan int, 10) go func() { for i := 0; i < 10; i++ { numChan <- i fmt.Println("写入数据:", i) } close(numChan) }() for { _, ok := <-numChan fmt.Println("ok的值", ok) if原创 2021-04-26 10:10:34 · 1074 阅读 · 0 评论 -
goroutine:for range管道关闭的使用
1.遍历广告时候 只返回一个值2.for range是不知道管道已经写完了3.需要在管道写入的地方关闭管道 close(numChan) 关闭后for range 会自动退出package mainimport "fmt"func main() { numChan := make(chan int, 10) // 写入 go func() { for i := 0; i < 50; i++ { numChan <- i fmt.Println("写入数据",原创 2021-04-26 10:09:30 · 410 阅读 · 0 评论 -
goroutine:A往管道里写数据,B往管道里读数据
package mainimport ( "fmt" "time")//channel//A往管道里写数据 B往管道里读数据 go自动帮我们做好了同步//创建管道 strChan := make(chan int) //装字符串的通道//创建管道一定要使用make关键字//无缓冲区管道channel////读取func main() { numChan := make(chan int, 10) //装数字的管道 创建缓冲区为10的管道 // 创建两个go程 主程写数据 子原创 2021-04-26 10:05:56 · 130 阅读 · 0 评论 -
Golang gin框架阿里云OSS上传多种情况实战
文档地址:https://help.aliyun.com/document_detail/32144.html?spm=a2c4g.11174283.6.1085.55aa7da2CpaepD安装SDK执行以下命令安装OSS Go SDK:go get github.com/aliyun/aliyun-oss-go-sdk/oss运行以下代码查看OSS Go SDK版本:package mainimport ( "fmt" "github.com/aliyun/aliyun-os原创 2021-01-12 12:00:58 · 2821 阅读 · 0 评论 -
golang gin 集成swagger 自动生成api文档
package mainimport ( "github.com/gin-gonic/gin" ginSwagger "github.com/swaggo/gin-swagger" "github.com/swaggo/gin-swagger/swaggerFiles" "net/http" _ "t2/docs")func main() { r := gin.Default() app := r.Group("/app") app.GET("/index", appIndex)原创 2020-10-24 10:48:38 · 517 阅读 · 0 评论