go
文章平均质量分 53
go
mumu_wangwei
祝愿看到内容的各位都能不放弃自己。也许美好就在下个路口,你只需要做的就是停下来多看看这个美好的世界。浮生墓,主修“红尘道”,让我们在红尘中修行而不忘初心。
展开
-
【GOLANG】使用插件 Goanno 的方式来对方法、接口、结构体注释模板配置
直接 使用插件 Goanno 的方式来对方法、接口、结构体注释模板配置。1、简单安装 Goanno 插件。原创 2023-12-30 13:54:32 · 794 阅读 · 0 评论 -
【GO】go的protobuf报错protoc-gen-go: unable to determine Go import path for “pb/msg.proto“,a “go_package“
/给C#提供的选项。package pb;原创 2022-08-28 23:43:58 · 405 阅读 · 0 评论 -
【GO】go语言中return语句可以带返回值,也支持不带返回值
可以在有一到多个命名返回值的函数中,写无需声明返回值的return语句。这种情况下,返回值将是命名的返回值,它们在函数入口处被初始化为其类型的零值,并且可以在函数体通过赋值语句来改变它们。go语言中return语句可以带返回值,也支持不带返回值。下面是不带返回值的一些问题。//3、下面这个if语句正常,并且函数返回3, 4。如果不赋值,函数内就一个return语句,结果为。2、下面这个if语句报错。//直接返回,无需声明返回值。//1、下面这个if语句正常。//直接返回,无需声明返回值。...转载 2022-08-27 22:26:24 · 1322 阅读 · 0 评论 -
【GO】Go 语言 select 语句(select 的功能和poll, epoll 相似)
select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。这里的通信,可以简单的理解为IO(输入输出),例如如下代码。...原创 2022-08-26 15:19:02 · 340 阅读 · 0 评论 -
【GO】go语言channel的关闭管道的遍历
使用内置函数close可以关闭channel,当channel关闭后,就不能再向channel写数据了,但是仍然可以从该channel读取数据。3)不使用for进行遍历,假如使用for进行遍历长度为100的channel数据,最后拿出来的只有50条。2)在遍历时,如果channel已经关闭,则会正常遍历数据,遍历完后,就会退出遍历。// 如果在遍历时没有关闭channel,则会出现deadlock错误。1)在遍历时,如果channel没有关闭,则会出现deadlock 的错误。1. channel的关闭。.转载 2022-08-26 14:48:32 · 732 阅读 · 0 评论 -
【GO】go语言中map定义使用
在go语言中make和new都是创建map类型的方法,但是make对应的直接是实体,而new对应的则是一个指针,new方法创建的map是需要初始化后才可以被引用。map相当于python的字典,是key和value的一种集合。`map[zhangsan:工程师]map[zhangsan:工程师]make和new声明map的区别。map[四合院:beijing]...转载 2022-08-26 00:17:44 · 712 阅读 · 0 评论 -
【GO】Go语言append()为切片添加元素
往一个切片中不断添加元素的过程,类似于公司搬家,公司发展初期,资金紧张,人员很少,所以只需要很小的房间即可容纳所有的员工,随着业务的拓展和收入的增加就需要扩充工位,但是办公地的大小是固定的,无法改变,因此公司只能选择搬家,每次搬家就需要将所有的人员转移到新的办公点。不过需要注意的是,在使用 append() 函数为切片动态添加元素时,如果空间不足以容纳足够多的元素,切片就会进行“扩容”,此时新切片的长度会发生改变。通过查看代码输出,可以发现一个有意思的规律:切片长度 len 并不等于切片的容量 cap。转载 2022-08-25 14:29:28 · 1151 阅读 · 0 评论 -
【GO】go语言实例化结构体3中方式
Go语言可以通过多种方式实例化结构体,根据实际需要可以选用不同的写法。原创 2022-08-25 13:53:14 · 432 阅读 · 0 评论 -
【GO】go mod 和vendor依赖管理工具
go mod download/go get 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)govendor init 初始化生成vendor文件夹,代码必须写在proj/src下,即proj/src/main.go。go module是Go语言默认的依赖管理工具,且没有必要在GOPATH中创建项目了。go mod tidy 增加缺少的module,删除无用的module。go mod verify 校验依赖。在go module中,...原创 2022-08-05 07:00:22 · 601 阅读 · 0 评论 -
【GO】win10下go-micro控制台安装
win10下go-micro控制台安装。版本最新为v1.1.1。原创 2022-08-05 02:09:53 · 373 阅读 · 0 评论 -
[GO]go-micro介绍
API 网关、CLI、Slack Bot、代理及Web UI。go-plugins - go-micro的插件有etcd、kubernetes、nats、rabbitmq、grpc等等。go-micro - 基于Go语言的可插拔RPC微服务开发框架;包含服务发现、RPC客户/服务端、广播/订阅机制等等。可插拔 - 可以选择从哪个源加载配置:文件、环境变量、consul。集成服务发布、RPC、分发/订阅机制、消息编码。Micro由开源的库与工具组成,旨在辅助微服务开发。Go Micro可以帮你编写微服务。..转载 2022-08-04 23:38:10 · 1278 阅读 · 0 评论 -
【GO】go安装protobuf、proto、grpc、报错(go get: module github.com/golang/protobuf/proto: Get )
放到D\ProgramFiles(x86)\Protobuf\bin目录protoc-gen-go.exe。在go.mod添加requiregithub.com/golang/protobufv1.3.2。通过各种尝试,执行以下两条命令后,再次执行goget可顺利安装。获得protoc-gen-go.exe。原创 2022-08-02 04:52:49 · 1125 阅读 · 0 评论 -
【GO】go多态
Go本身不具有多态的特性,不能够像Java、C++那样编写多态类、多态方法。但是,使用Go可以编写具有多态功能的类绑定的方法。为什么这么说呢?因为Go使用struct构建类,根据不同类调用不同的方法。下面将展示如何使用Go编写多态功能。...原创 2022-06-21 14:21:48 · 881 阅读 · 0 评论 -
【GO】go语言interface
Go 接口实现机制很简洁,只要目标类型方法集内包含接口声明的全部方法,就被视为实现了该接口,无须做显示声明。当然,目标类型可实现多个接口。这样做的好处有:我们可以先实现类型,再抽象出所需要的接口。同时在 Go 语言中没有继承的概念,所以结构、接口之间也没有父子关系,Go 语言提倡的是组合,利用组合达到代码复用的目的,这也更灵活。从内部实现来看,接口自身也是一种结构类型,但是编译器会对其做出很多限制:接口通常以作为名称后缀。空接口如果接口没有声明任何方法,那么就是一个空接口,它的用途类似面向对象里的根类型Ob原创 2022-06-20 00:48:59 · 342 阅读 · 0 评论 -
【GO】go mod模式, package 12import/add is not in GOROOT
编译或run go工程时报该错,首先查看环境变量 go env 看GO111MODULE是什么状态。分为两种情况处理1,项目是mod模式a) 如果GO111MODULE=on,则看看工程下面是否有go.mod文件,如果没有则go mod init一下完事后 go mod tidy即可;b) 如果GO111MODULE=on,且有go.mod,则直接go mod tidy;c) 如果GO111MODULE=off,则开启mod模式 export GO111MODULE="on",然后继续走a)d) 还原创 2022-06-18 23:58:56 · 393 阅读 · 0 评论 -
【GO】Go数组和切片(动态数组)
切片在 golang 是一种很重要的数据结构,大家平时工作和面试都会遇到,而且切片需要注意的点比较多,只有深入去理解它,才能避免采坑。下面开始发车。数组数组是内置类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值。在初始化后长度是固定的,无法修改其长度。当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分,通过内置函数len(array)获取其长度。还有几点要注意的: //值传递,传的是副本func updateArr(b [3]int)转载 2022-06-18 21:18:39 · 841 阅读 · 0 评论 -
【GO】Go Modules入门
Go modules 是 Go 语言中正式官宣的项目依赖解决方案,Go modules(前身为vgo)于 Go1.11 正式发布,在 Go1.14 已经准备好,并且可以用在生产上(ready for production)了,Go官方也鼓励所有用户从其他依赖项管理工具迁移到 Go modules。而 Go1.14,在近期也终于正式发布,Go 官方亲自 “喊” 你来用:因此在今天这篇文章中,我将给大家带来 Go modules 的 “终极入门”,欢迎大家一起共同探讨。Go modules 是 Go 语言中正式转载 2022-06-18 01:44:15 · 382 阅读 · 0 评论