![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
hllyzms
编程爱你不容易
展开
-
GoLand调试报错:Version of Delve is too old for this version of Go...
debug 调试时 报错点开控制台那4行信息发现(当时忘了截展开后的图),它使用的是GoLand自带的dlv.exe,已不支持新版的GOLANG了,所以报错解决方法:1. 更新dlv因为本地已经存在,所以,需要用到-u参数,强制更新包以及依赖go get -u github.com/go-delve/delve/cmd/dlv注:如果get失败,可以直接去github用git下载github.com/go-delve/delve/cmd/dlv。然后命令行进入到下载好.原创 2021-05-02 16:08:18 · 1159 阅读 · 0 评论 -
无缓冲的channel是同步的,而有缓冲的channel是非同步的
golang channel 有缓冲 与 无缓冲 是有重要区别的以前认为 有缓冲与无缓冲的区别 只是 无缓冲的 是 默认 缓冲 为1 的缓冲式其实是彻底错误的,无缓冲的与有缓冲channel有着重大差别那就是一个是同步的 一个是非同步的比如c1:=make(chan int) 无缓冲c2:=make(chan int,1) 有缓冲c1<-1无缓冲的 不仅仅是 向 c1 通道放 1 而是 一直要有别的携程 <-c1 接手了 这个参数,那么c1<-1才会继续下去,要不然就一直阻原创 2021-03-25 13:46:14 · 2061 阅读 · 0 评论 -
golang path包
path 包详解package mainimport ( "fmt" "os" "path" "path/filepath")func main() { //Path操作 fmt.Println("Path操作-----------------") fmt.Println(path.Base("http://www.baidu.com/file/aa.jpg")) //aa.jpg fmt.Println(path.Clean("c:\\file//abc///aa.jpg"))原创 2021-03-20 18:52:46 · 400 阅读 · 0 评论 -
golang中.a文件是什么
*** .a文件是编译过程中生成的,每个package都会生成对应的.a文件,Go在编译的时候先判断package的源码是否有改动,如果没有的话,就不再重新编译.a文件,这样可以加快速度。生成.a文件(.h文件也会自动生成)创建文件pkgqrcode.gopackage mainimport "C"import (//"fmt""github.com/tuotoo/qrcode""os")//export GetQrcodeStringfunc GetQrc...转载 2021-01-28 10:03:53 · 1835 阅读 · 0 评论 -
Go godoc 自动生成 API 文档
参考:Go 利用 godoc 自动生成 API 文档https://blog.csdn.net/KianKwok/article/details/109166906beego自动化文档https://www.jianshu.com/p/0d375f4b36b2Go——godoc命令简介https://www.cnblogs.com/wangyang0210/p/11064128.html...原创 2021-01-20 07:36:17 · 1823 阅读 · 0 评论 -
goload 启动报错 if you already have a 64-bit JDK installed,define a JAVA_HOME
启动 goland 的时候报错Error launching IDEA if you already have a 64-bit JDK installed,define a JAVA_HOME variable in Computer > System Properties > System Settings > Environment VariablesFailed to create JVM.JVM Path:C:\GoLand 2019.2.3\jbr解决方法:...原创 2021-01-20 07:35:15 · 1269 阅读 · 0 评论 -
Goland常用快捷键 插件
Goland常用快捷键文件相关快捷键:CTRL+E,打开最近浏览过的文件。CTRL+SHIFT+E,打开最近更改的文件。CTRL+N,可以快速打开struct结构体。CTRL+SHIFT+N,可以快速打开文件。代码格式化:CTRL+ALT+T,可以把代码包在一个块内,例如if{…}else{…}。CTRL+ALT+L,格式化代码。CTRL+空格,代码提示。CTRL+/,单行注释。CTRL+SHIFT+/,进行多行注释。CTRL+B,快速打开光标处的结构体或方法(跳转到定义...原创 2020-12-27 13:02:18 · 862 阅读 · 0 评论 -
protoc WARNING: Missing ‘go_package‘ option
使用protoc -I . --go_out=plugins=grpc:. ./user.proto 生成 rcp 文件报错E:\workspace\gocode\day16\05rpc\proto>protoc -I . --go_out=plugins=grpc:. ./user.proto2020/12/26 11:24:08 WARNING: Missing 'go_package' option in "user.proto",please specify it with the.原创 2020-12-26 11:38:39 · 3788 阅读 · 0 评论 -
go gin重定向
外部重定向func redirect(c *gin.Context) { c.Redirect(301,"http://www.baidu.com")}# urlr := gin.Default()r.LoadHTMLGlob("./templates/*")r.GET("redirect",redirect)请求日志直接重定向到了 百度内部重定向r.GET("/test", func(c *gin.Context) { c.Request.URL.Path = "/tes原创 2020-12-26 10:41:29 · 1794 阅读 · 0 评论 -
go 自动文档生成 如何写高大上的 godoc(Go 文档)
做 Go 开发时,我们在开源项目的主页上我们经常可以看到这样的一个徽章:点击徽章,就可以打开 godoc.org 的网页,网页中给出了这个开源项目所对应的 Go 文档。作为 Go 语言的新手,我一度以为,godoc.org 上面的文档是需要开发者上传并审核的——要不然那些文档咋都显得那么专业呢。然而当我写自己的轮子时,慢慢的我就发现并非如此。划重点:在 godoc.org 上的文档,都是 Go 自动从开源项目的工程代码中搜集、格式化后展现出来的。换句话说,每个人都可以写自己的 godoc..原创 2020-12-26 10:40:41 · 2512 阅读 · 1 评论 -
Protobuf语法 proto2
本文是一篇译文,原文地址为:https://developers.google.com/protocol-buffers/docs/proto#generatingproto3 语法参考:https://blog.csdn.net/weixin_37989267/article/details/111716559定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式转载 2020-12-26 10:36:06 · 901 阅读 · 0 评论 -
Protobuf语法 (proto3)
本文是一篇译文,原文地址为:https://developers.google.com/protocol-buffers/docs/proto3在阅读本篇文章之前可参考我的另一篇博文:Protobuf语法指南(proto2)定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件:syntax = "proto3";messa转载 2020-12-26 10:26:09 · 1051 阅读 · 1 评论 -
go 项目开发热加载
六种热加载方法https://www.jianshu.com/p/d7916f21d38cgo 使用 fresh 实现热重启、https://blog.csdn.net/sss996/article/details/94722479go 使用 air 实现热重启https://www.liwenzhou.com/posts/Go/live_reload_with_air/# 注意 Windows下 使用 需要 安装包之后需要进入包的安装目录 如:E:\code\go\pk..原创 2020-11-12 09:13:21 · 2039 阅读 · 2 评论 -
GOPATH/go.mod exists but should not goland
在goload 中执行代码报错$GOPATH/go.mod exists but should not goland方法1 将go目录下存在go.mod,删去方法2 goland Go Modules设置GOPATH不设置留空,保留Default系统变量添加GOPROXY,值:https://goproxy.cn原创 2020-09-30 09:08:50 · 8719 阅读 · 2 评论 -
Python调用golang
有些时候因为效率问题部分代码会 使用Python调用go的编译生成动态链接库go 代码示例//add.gopackage mainimport "C"//export Addfunc Add(a, b int) int { return a + b}//export Addstrfunc Addstr(a, b *C.char) *C.char { merge := C.GoString(a) + C.GoString(b) return C.CString(merge)}原创 2020-09-29 16:06:30 · 2829 阅读 · 1 评论 -
“gcc“: executable file not found in %PATH%
golang 生成Python使用的动态链接库时报错"gcc": executable file not found in %PATH%是因为系统缺少gcc 模块windows 下载地址根据你系统的位数 下载相应的版本下载后安装安装完成后 把 bin 目录添加到 环境变量如我的安装目录:C:\TDM-GCC-64\bin...原创 2020-09-29 15:14:48 · 617 阅读 · 0 评论 -
go command-line-arguments解决
代码结构main.go 用到了 stuentmgr.go 中的结构体开发过程中 使用go run main.go 运行代码时报错# command-line-arguments.\main.go:9:9: undefined: studentMgr.\main.go:25:8: undefined: studentMgr解决 1:运行时把两个文件都选择上 运行2或者采用命令go run *.go使用 go build 编译后运行 不会有这样的问题...原创 2020-08-22 19:07:12 · 7745 阅读 · 0 评论 -
go 值类型和引用类型
值类型:基本数据类型,int,float,bool,string,以及数组和struct特点:变量直接存储值,内存通常在栈中分配,栈在函数调用完会被释放函数传值 使用指针传递,否则传递的是值得拷贝引用类型:指针,slice,map,chan等都是引用类型特点:变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配,通过GC回收。...原创 2020-08-17 14:15:22 · 338 阅读 · 1 评论 -
goland show toolbar 显示工具栏
goland 默认不显示 toolbar勾选上 工具栏 toolbar之后显示原创 2020-08-16 14:57:29 · 4683 阅读 · 0 评论 -
Go 类型断言 .(type)
关键词:interface,switch类型断言x.(T)其实就是判断T是否实现了x接口,如果实现了,就把x接口类型具体化为T类型;x.(T)其中:x:表示类型为interface{}的变量 T:表示断言x可能是的类型。该语法返回两个参数,第一个参数是x转化为T类型后的变量,第二个值是一个布尔值,若为true则表示断言成功,为false则表示断言失败。x.(type)x.(type)方式的类型断言,只能和switch搭配使用,因为它需要和多种类型比...原创 2020-08-13 21:52:45 · 956 阅读 · 0 评论