初级会员
  • 第 69284 位会员
  • xwszt
  • 2021-09-05 15:18:11
  • Offline
  • 22 27

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 评论了面试题 Go每日一题(9)
    可以用来设计Set集合
  • 评论了面试题 Go每日一题(8)
    map是无序存储的,所以不能直接判断两个map是否相等;网上有一种比较方法,不一定是最好,但起码也是一种方案。 ```go func CompareMap(dm1 map[string]interface{}, dm2 map[string]interface{}) bool { keySlice := make([]string, 0) data1Slice := make([]interface{}, 0) data2Slice := make([]interface{}, 0) for key, value := range dm1 { keySlice = append(keySlice, key) data1Slice = append(data1Slice, value) } for _, key := range keySlice { if data, ok := dm2[key]; ok { data2Slice = append(data2Slice, data) } else { return false } } data1Bytes, _ := json.Marshal(data1Slice) data2Bytes, _ := json.Marshal(data2Slice) return string(data1Bytes) == string(data2Bytes) } ``` 代码中遗漏了判断两个map是否为nil以及是否长度相等的前置条件判断,大概思路就是取出其中一个map的key放到slice里,并且按照key的slice到另外一个map中取值,如果有一个取不到,那这两个map肯定不相等,如果都取到了,那么比较两个dataslice的json编码是否相等
  • 是不是有点儿麻烦呀 1、安装protoc,直接访问https://github.com/protocolbuffers/protobuf/releases/latest,下载最新的,解压出来放到PATH环境变量指定目录下就可以用了 2、安装protoc-gen-go,使用命令 ```go go get -u google.golang.org/protobuf/proto go install github.com/golang/protobuf/protoc-gen-go@latest ``` 就可以了 当然需要你开启了GO111MODULE="on",并且设置了GOPROXY="https://goproxy.io,direct"了
  • go-micro要注意它的**版本**
  • 左边是变量名,右边是值 **:=** 相当于先声明变量,然后再赋值 你这个例子,相当于同一个作用域,声明相同名称等变量,肯定是错误的