go
多多-江北残刀
这个作者很懒,什么都没留下…
展开
-
Go为什么把不同长度数组看作不同类型?
为什么Go要把不同长度的数组看作不同类型呢?c,c++,Java把不同长度数组看作相同类型好像也没什么问题啊?原创 2023-09-18 01:10:17 · 193 阅读 · 0 评论 -
cobra 命令行参数StringVarP与BoolVarP区别
使用cobra实现命令行参数解析的时候发现一个现象:bool类型参数和string类型参数解析时所需传入参数个数不一样, 假设有如下两行flag声明: cmd.Flags().StringVarP(&strV, "strVar", "", "defaultS", "a string param") cmd.Flags().BoolVarP(&boolV, "boolVar", "", false, "a bool param")在参数调用的时候就是cmd --strV newS原创 2021-08-17 12:07:43 · 2790 阅读 · 0 评论 -
goland 无法拉取golang.org/x依赖
写go程序有时候会引到golang.org/x的包,下不下来就会飘红,go get也会失败,没研究过依赖处理,每回解决完就忘了,再遇到又得查,特记:goland 设置,file->Settings->Go->Go Modules ,勾选Enable Go modules integration,并在Enviroment一栏填新增GOPROXY:Apply 保存退出。如果还没有mod文件,需要先初始化cd $projectdirgo mod init ./go mod ti原创 2021-08-16 10:08:17 · 830 阅读 · 0 评论 -
Golang 获取当前可执行文件名
如果编译好的文件修改了文件名,又希望能正确打印usage信息等,就可以通过动态获取当前可执行程序文件名实现:func main() { path,_ := os.Executable() _,exec := filepath.Split(path) cmd := cobra.Command{ Use: exec, Short: "", Long: "",原创 2021-08-12 17:16:00 · 2667 阅读 · 0 评论 -
goland 自动更新mod文件
问题使用goland,很多时候拉取代码遇到问题:本地mod文件与远端库不一致,例如这导致pull代码的时候会报冲突无法拉取。尽管使用rollback将mod文件与远端同步或者stash掉本地修改,goland也会立刻对mod重新做出修改,导致打开goland的情况下无法拉取最新代码。原因git自不用说,本地代码与远端不同就是不能拉取;问题出在goland,它会自动实时根据代码中的引用删除不必要的依赖项。解决去掉goland自动依赖更新即可windows: file -> settings原创 2021-07-01 10:27:23 · 5906 阅读 · 0 评论 -
go get报错“is a GOROOT, not a GOPATH. For more details see: ‘go help gopath‘”
删除 $GOPATH/src/cmd 目录解决:rm -rf $GOPATH/src/cmd参考 https://www.jianshu.com/p/3fb4e58e4528原创 2021-06-16 15:34:51 · 640 阅读 · 0 评论 -
gorm实现insert ignore into语句调用
insert into my_table values(‘1’,‘a’) :type MyTable struct { x string y string}func (tn *MyTable) Create(db *gorm.DB) error { return db.Create(tn).Error}func (tn *MyTable) TableName() string { return "my_table"}insert ignore into my_table .原创 2021-03-03 11:34:31 · 4416 阅读 · 0 评论 -
linux下使用snap安装指定go 版本
以go 1.13为例snap info go... 1.13/stable: 1.13.15 2020-08-12 (6264) 93MB classic 1.13/candidate: 1.13.15 2020-08-12 (6264) 93MB classic...snap install go --channel=1.13/stable --classic原创 2020-12-17 10:58:45 · 5228 阅读 · 0 评论 -
go build 报错“updates to go.sum needed, disabled by -mod=readonly“
使用go get 拉取k8s api源码然后执行编译的时候报错(初用,可能我用法不对):go get k8s.io/client-go@v0.19.0cd $GOPATH/pkg/mod/k8s.io/client-go@v0.19.0/examples/out-of-cluster-client-configurationgo build报错go: updates to go.sum needed, disabled by -mod=readonly上网查了下资料不多,貌似跟modul原创 2020-09-27 15:45:03 · 3400 阅读 · 2 评论 -
hyperledger fabric 源码调试(peer)环境搭建教程
前面写了一篇[hyperledger fabric 源码调试(orderer)环境搭建教程],按照相同的思路,这次来搭建peer的调试环境。部分相同的步骤和讲解请看上一篇,这里不再重新解释。peerfirst-network示例中包含4个peer,我们只把peer0.org1配置成源码调试。一、Run/Debug Configuration 配置。新增一个Go build 配置具体如下:n...原创 2019-12-22 20:43:11 · 1597 阅读 · 18 评论 -
hyperledger fabric 源码调试(orderer)环境搭建教程
###前言 接触hyperledger fabric有一段时间了,看文档搭集群写链码都做过,但要深入理解还是通过源码比较直观,遂决定部署起来。同多机器部署一样,官文对源码调试的描述较少,网上有些前辈已经写过但少有明确每一步的原因,本系列文尝试依据个人理解来描述构建fabric源码调试环境的步骤,去掉docker这层障碍,并给出思考过程。 之前有写过一篇hyperledger fabric ...原创 2019-12-19 12:03:39 · 1601 阅读 · 4 评论 -
hyperledger fabric [问题] -- chaincode 的package名必须为main
chaincode instantiate 出错:2019-12-17 03:04:17.548 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vsccError: could not assemble transaction, err proposal response was not succ...原创 2019-12-18 10:50:14 · 529 阅读 · 0 评论 -
Go语言 -- 关于nil的幺蛾子
go语言中的nil即空值/零值,含义与java中的null一样,但是用起来是有些坑的。先来段java代码interface MyInterface {}public class Test implements MyInterface{ public static void main(String[] args) { Test test = null; MyInterface ...原创 2019-12-02 22:13:43 · 342 阅读 · 0 评论 -
Go语言 -- 接口和指针语法糖
“我不想吹go怎么先进高级,相反就目前为止我觉得它有点莫名其妙”Note:没使用过c语言指针的建议直接找教程看,否则可能越看越糊涂。指针和语法糖go语言采用了C语言中指针的概念,简单来说指针就是变量的地址,在C语言中通过[*ptr.]或者[ptr->] 的方式来使用,但是在Go语言中把这两种方式都简化成[ptr.]了,与普通变量一样,看过一篇文章说这是go提供的一个语法糖,示例:fu...原创 2019-11-27 23:57:08 · 1146 阅读 · 0 评论 -
golang中的三个点 '...' 的用法
golang中的三个点 '...' 的用法下面直接上例子:第二个例子:本文链接:https://blog.csdn.net/jeffrey11223/article/details/79166724‘…’ 其实是go的一种语法糖。它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。第二个用法是slice可以被打散进行传递。下面直接上例子:func test1...转载 2019-11-25 16:06:06 · 198 阅读 · 0 评论 -
深入学习golang(4)—new与make
本文转载自:https://www.cnblogs.com/hustcat/p/4004889.html原文允许转载。Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。对于初学者,这两者的区别也挺容易让人迷糊的。简单的说,new只分配内存,make用于slice,map,和channel的初始化。1. new这是一个用来...转载 2019-11-22 17:50:06 · 395 阅读 · 0 评论