自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 protobuf与grpc

protobuf是一种编解码协议,支持多种语言,比如go,python,c++,java,javascript等,效率比json更高,但是没有json那么易于理解。安装编译工具:截至到发文时间已更新至v3.18.0,下载位置:github链接然后将压缩包解压,再将bin目录设置到$PATH环境变量下即可插件此时还不支持golang,去grp-gateway按照提示安装:proto文件格式(经常变动,以github为准)syntax = "proto3";package coolcar;o

2021-09-29 01:35:30 735

原创 golang并发模式

文章目录生成器想要同时处理多个服务,可以将连个chan的服务同时发给第三个chan,同时等待多个服务并发模式,并不是设计模式,而是编写多go程和使用chan的通用套路:生成器生成器不停的产生服务/任务,返回一个服务句柄,用于跟服务交互//不停的产生任务/服务,返回一个任务/服务句柄,用于跟服务交互func msgGenerator() chan string { c := make(chan string) go func() { i := 0 for { time.Sleep(

2021-09-12 19:26:51 160

原创 golang随机数

如下生成0000-9999的随机数字 rand.Seed(time.Now().UnixNano()) //播种随机数种子 smsCode := fmt.Sprintf("%04d", rand.Int31n(10000))

2021-09-12 17:48:29 352

原创 golang系统接口

系统接口:type Stringer interface { String() string}例子:import "fmt"type Test struct { m int}func (t *Test) String() string { return "kshf"}func main() { t := &Test{} //会打印t.String() fmt.Println(t)}另外连个很重要的io接口type Reader interface {

2021-09-10 00:43:53 87

原创 golang之常量与枚举

golang的常量是一种非常特殊的类型,与其他语言区别挺大,在定义的时候不需要指定类型,如下:在使用时,num可以赋值给float等类型const ( s = "abc" num = 2)func main() { var a float = num fmt.Println(a) fmt.Printf("%T,%T",s,num)}在常量之后加入iota,成为自增常量,iota是一个与常量位置相等的值,并且是可以参与运算的,例子const ( s = 2 p num = io

2021-09-09 02:11:49 2206

原创 golang之websocket

websocket是啥websocket是socket连接和http协议的结合体,可以实现网页和服务端的长连接通信流程

2021-09-07 22:49:26 1635

原创 golang切片与数组

golang的切片是一个动态数组,也就是相当于C++中的vector,当然,切片类型变量就是一个指针变量具体操作:数组拷贝,注意数组的长度必须相同arr := [10]int{1,3,2,1,1,1,1}arr2 = arr //拷贝将数组转换成切片(其实就是切片指针指向了数组,非拷贝):此时改变切片元素内容,数组内容也会改变,注意:当切片arr2增加新元素后,会开辟新的空间,就和原数组没关系了 arr := [10]int{1,3,2,1,1,1,1} arr2 := arr[m:n]

2021-09-06 23:17:19 725

原创 go mod的使用

相信很多学go的小伙伴,不清楚go mod的具体用法,这里专门写篇文章备忘。go mod是在1.11版本以后出现的,所以在1.11版本之前,我们必须将项目建立在 $GOPATH/src 目录下go mod的具体语法1.module:指明根目录2.go 后面跟版本号是指定go的版本3.require是个动作指令,对依赖包起作用,比如require(依赖),还有exclude(排除),replace(替代),相同动作的可以放在一个动词+括号组成的结构中,如下:require ( new/th

2021-09-05 18:25:31 1247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除