golang
文章平均质量分 60
whz-emm
这个作者很懒,什么都没留下…
展开
-
golang泛型:generics
golang在没有泛型的时候,如果我们要计算一个map的所有value之和,比如该map的key为string类型,value是int64类型,我们需要定义以下函数:同时我们又有另外一个map也需要计算所有value之和,该map的key也为string类型,但是value是float64类型,所以我们还需要定义另外一个函数:然后在分别调用两个函数执行计算操作1. 先定义两个map2. 调用函数可以发现SumInts和SumFloats除了接收参数不同之外内部逻辑完全相同,如果有更多原创 2022-06-06 15:07:43 · 721 阅读 · 0 评论 -
golang.org/x/crypto/ssh使用
packagepackage sshplusimport ( "fmt" "golang.org/x/crypto/ssh" "io/ioutil")func NewConfig(keyFile, user string) (config *ssh.ClientConfig, err error) { key, err := ioutil.ReadFile(keyFile) if err != nil { err = fmt.Errorf("unable to read pr.原创 2021-12-23 15:25:25 · 2537 阅读 · 0 评论 -
etcd-golang sdk使用
etcd介绍"etcd"这个名字源于两个想法,即 unix "/etc" 文件夹和分布式系统"d"istibuted。 "/etc" 文件夹为单个系统存储配置数据的地方,而 etcd 存储大规模分布式系统的配置信息。因此,"d"istibuted 的 "/etc" ,是为 "etcd"。etcd 以一致和容错的方式存储元数据。分布式系统使用 etcd 作为一致性键值存储,用于配置管理,服务发现和协调分布式工作。使用 etcd 的通用分布式模式包括领导选举,分布式锁和监控机器活动。etcd 设计用原创 2021-10-15 09:58:26 · 947 阅读 · 0 评论 -
kube-promethues添加自定义指标
通过promethues-golang创建自定义指标https://github.com/prometheus/client_golang/blob/master/examples/random/main.gohttps://github.com/prometheus/client_golang/blob/master/examples/random/main.go直接go run main.go运行起来即可此时通过IP:8080/metrics可以获取到数据添加额外监控组件配置scrape_c原创 2021-10-08 15:14:51 · 1876 阅读 · 0 评论 -
golang使用grpc转化为restful
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gatewaygo get -u github.com/golang/protobuf/protoc-gen-gogo get -u github.com/gogo/protobuf/gogoprotoproto文件syntax = "proto3";package api;import "github.com/gogo/protobuf@v1.3.2/.原创 2021-09-22 16:04:19 · 524 阅读 · 0 评论 -
Import “github.com/gogo/protobuf/gogoproto/gogo.proto“ was not found or had errors.
使用gogoproto时报错Import "github.com/gogo/protobuf/gogoproto/gogo.proto" was not found or had errors.需要把每个需要导入的包都在--proto_path加上,比如需要导入github.com/gogo/protobuf/gogoproto/gogo.proto,我本地的github.com/gogo/protobuf/gogoproto/gogo.proto文件在${HOME}/golang/pkg/mod目原创 2021-09-17 17:09:58 · 4124 阅读 · 3 评论 -
golang测试
使用tesing包,可以用来实现单元测试(T类型)和性能测试(B类型),通过go test命令来执行单元测试和性能测试。测试命名规范测试文件命名规范 Go测试文件名必须以_test.go结尾,Go会通过文件名来识别哪些是测试文件,go test的时候会加载这些测试文件,比如有一个待测试文件名为person.go,则测试文件命名为person_test.go包的命名规范 Go测试可分为白盒测试和黑盒测试白盒测试:将测试代码合待测代码放在同一个包中,因此白盒测试代码原创 2021-09-15 17:14:12 · 957 阅读 · 0 评论 -
/usr/local/go/src/net/cgo_linux.go:12:8: no such package located
1. 安装gccyum install gcc -y2. 修改/usr/local/go/src/net/cgo_linux.go:添加两行#cgo CFLAGS: -I .#include <stdlib.h>修改后为:/*#cgo CFLAGS: -I .#include <stdlib.h>#include <netdb.h>*/import "C"原创 2021-07-06 11:29:05 · 1606 阅读 · 8 评论 -
effective_go
https://golang.google.cn/doc/effective_go代码格式化type T struct {name string // name of the objectvalue int // its value}// 使用gofmt自动格式化type T struct {name string // name of the objectvalue int // its value}格式说明:...原创 2021-05-14 16:15:19 · 150 阅读 · 1 评论