Skip to content

qugemingzizhemefeijin/go-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang 学习案例

Golang1.14.7 + redis5.0.9 for Windows

1.相关软件下载

Golang1.14.7下载
Redis5.0.9下载

2.相关包地址

go-redis地址
redigo地址

3.vscode快捷键

名称 快捷键
删除当前行 ctrl + shift + k
向上/向下复制当前行 shift + alt + ↓/↑
补全代码 ctrl + .
添加注释和取消注释 ctrl + /
快速修改 ctrl + .
快速格式化代码 shift + alt + f

4.vscode 安装go环境无法安装gopls等插件,响应超时、失去连接等问题的简单解决方案

解决方案是修改代理,然后在cmd下面输入:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=“sum.golang.org”

修改代理到国内的go,然后在 cmd 重新获取即可成功:

go get -v golang.org/x/tools/gopls
go get -u github.com/derekparker/delve/cmd/dlv

开启CGO

set CGO_ENABLED=1

5.安装go protobuf

Linux下使用方法如下:

mkdir -p $GOPATH/src/google.golang.org
git clone https://e.coding.net/robinqiwei/googleprotobuf.git $GOPATH/src/google.golang.org/protobuf

Windows下使用方法:

// 找到你的GOPATH/src目录,新建google.golang.org文件夹
// 在google.golang.org目录下执行

git clone https://e.coding.net/robinqiwei/googleprotobuf.git protobuf

windows很难安装成功,可以使用如下步骤:

git clone git@github.com:golang/protobuf.git ./github.com/golang/protobuf
// git clone 完代码后,在这个文件夹下(protoc-gen-go)打开终端执行
cd github.com/golang/protobuf/protoc-gen-go
go install
// 会生成一个exe文件
// 复制里面的protoc-gen-go.exe(后面的grpc是我后面安装的,这个别管) 复制到goroot的bin目录下
// protoc --go_out=. hello.proto
解决:protoc-gen-go: unable to determine Go import path for “.proto”**

在使用protoc命令根据*.proto文件生成代码时报了错误,下面会提示相应的解决办法,这里我们使用的是第一种,稍微翻译一下就知道,可以通过go_package去指定生成的go文件的位置。

// 这里不能用 "./",否则生成的go文件的 package 为 __,然后还要手动去改,为了避免就写成下面的样子
option go_package = "../所在包名"; // 指定生成go文件保存到当前包中

6.安装 grpc

默认可以通过:

go get google.golang.org/grpc

如果安装不成功,则可以使用以下方式:

// 首先进入到GOPATH的src目录
cd $GOPATH/src
git clone git@github.com:grpc/grpc-go.git ./google.golang.org/grpc
git clone git@github.com:golang/net.git ./golang.org/x/net
git clone git@github.com:googleapis/go-genproto.git ./google.golang.org/genproto
git clone git@github.com:golang/text.git ./golang.org/x/text
go install google.golang.org/grpc

测试安装:

// 启动服务器
go run google.golang.org/grpc/examples/helloworld/greeter_server/main.go
// 启动客户端
go run google.golang.org/grpc/examples/helloworld/greeter_client/main.go

通过下面的命令可以通过protobuf生成grpc代码:

protoc --go_out=plugins=grpc:. hello.proto

goland安装SDK报错

Goland配置GOROOT报错:The selected directory is not a valid home for Go Sdk

原因goland版本过低,当go版本大于1.17时就会报此异常。

编辑自己go安装目录下的:go\src\runtime\internal\sys\zversion.go,增加一行自己的版本:

const TheVersion = `go1.18`

报错verifying module: invalid GOSUMDB: malformed verifier id

关闭包验证:

go env -w GOSUMDB=off

报错no required module provides package google.golang.org/grpc: go.mod file not found in current directory or any parent directory

解决办法:

go env -w GO111MODULE=auto

安装validator

go get github.com/go-playground/validator
// go get安装时报错:unrecognized import path “golang.org/x/crypto/sha3“: https fetch: Get

mkdir -p $GOPATH/src/golang.org/x           //-p层级递归创建
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/sync.git
git clone https://github.com/golang/crypto.git
git clone https://github.com/golang/sys.git

About

golang学习案例

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages