- 博客(8)
- 资源 (5)
- 收藏
- 关注
原创 go语言搭建项目--grpc 以及grpc-getway使用
网上好多资料都是在linux下使用的,那咱么就说说在windows下的使用一、安装go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gatewaygo get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swaggergo get -u github.com/golang/protobuf/protoc-gen-go分别安装gateway、swagger、
2020-12-22 09:15:04 839
原创 go语言一个switch的坑
今天遇到一个案例,挺有意思,而且难以置信:func alwaysFalse() bool { return false}func main() { switch alwaysFalse() { case true: println(true) case false: println(false) }}猜一下输出什么?对,你猜错了,真实输出为true。看到这有一种骂娘的冲动,为啥呀,明明是false的呀。别急,咱们改一下,你要的false就出来了。func alwaysFa
2020-12-18 15:38:12 267
原创 Go语言关于defer的案例分析
遇到一个defer的问题很有意思,咱们来分析一下:func F(n int) func() int { return func() int { n++ return n }}func main() { f := F(5) defer func() { fmt.Println(f()) }() defer fmt.Println(f()) i := f() fmt.Println(i)}首先定义一个函数名称为F参数为int类型返回值为func() int的函数。返回值
2020-12-18 13:13:53 306
原创 Go语言方法值和方法表达式
遇到一个案例:type MyInt intfunc (n MyInt) test() { fmt.Println(n)}func main() { var n MyInt = 10 fmt.Println(n) n++ f1 := MyInt.test f1(n) n++ f2 := (*MyInt).test f2(&n)}咱们先来分析一下:1.定义了一个自定义类型MyInt类型为Int2.MyInt类型有一个方法为test()3.调用过程: 首先给
2020-12-18 10:43:49 355
原创 Go语言关于for range的案例分析
直接开始吧:func main() { var a = [5]int{1, 2, 3, 4, 5} var r [5]int for i, v := range a { if i == 0 { a[1] = 12 a[2] = 13 } r[i] = v } fmt.Println("r = ", r) fmt.Println("a = ", a)}输出:r = [1 2 3 4 5]a = [1 12 13 4 5]开始逐个分析:首先定义了一个i
2020-12-17 15:55:01 216
原创 Go语言关于defer,recover函数实例
遇到这样一种情况:func f(n int) (r int) { defer func() { r += n recover() }() var f func() defer f() f = func() { r += 2 } return n + 1}func main() { fmt.Println(f(3))}输出:7跟预想的完全不一样呀,颠覆了之前对defer()的认知
2020-12-17 10:33:00 331
原创 go语言自增变量测试
今天突然间看到一个问题,记录一下整个的分析过程func incr(t int){ t++}func main() { p :=1 incr(p) fmt.Println(p)}输出: 1原因:1.定义一个int类型的变量p2.将p变量传入到incr函数中3.在incr函数中对该变量进行自增,其实这步传进来后跟p就没有一毛钱关系了,所以p该是啥还是啥那我们再变一下:func incr(t *int){ *t++}func main() { p :=1 incr(&
2020-12-16 15:54:34 871
原创 Go语言锁、协程以及waitGroup、信道案例分析
直接开始:现在有十张票有三个售票窗口一、使用信道控制程序(不加锁)var ticket = 10func main() { ch := make(chan int) go saletickets("售票口",ch) for v:=range ch { fmt.Println("剩余票数:",v) }}func saletickets(name string,ch chan int){ for{ if ticket > 0 { fmt.Println(name,"售
2020-12-16 13:23:40 258
springcloud初学资料
2022-03-28
截图小工具工具源码,功能类似于qq截图,不过比qq截图功能少一点,添加gif生成
2018-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人