上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 198 下一页
摘要: 我在前一篇文章提到过这样一个说法,panic之中可以包含一个值,用于简要解释引发此panic的原因。 如果一个panic是我们在无意间引发的,那么其中的值只能由Go语言运行时系统给定。但是,当我们使用panic函数有意地引发一个panic的时候,却可以自行指定其包含的值。我们今天的第一个问题就是针对 阅读全文
posted @ 2021-09-14 17:59 brady-wang 阅读(88) 评论(0) 推荐(0)
摘要: 我在上两篇文章中,详细地讲述了Go语言中的错误处理,并从两个视角为你总结了错误类型、错误值的处理技巧和设计方式。 在本篇,我要给你展示Go语言的另外一种错误处理方式。不过,严格来说,它处理的不是错误,而是异常,并且是一种在我们意料之外的程序异常。 前导知识:运行时恐慌panic 这种程序异常被叫做p 阅读全文
posted @ 2021-09-14 17:50 brady-wang 阅读(243) 评论(0) 推荐(0)
摘要: https://blog.csdn.net/ailunlee/article/details/97831912 2 HTTP1.1和HTTP2.0的区别 2.1 多路复用 HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。HTTP 阅读全文
posted @ 2021-09-14 13:30 brady-wang 阅读(979) 评论(0) 推荐(0)
摘要: Go 没有像 Java 那样的异常机制,例如你无法像在 Java 中那样抛出一个异常。作为替代,它使用了恐慌和恢复(panic-and-recover)机制。一定要记得,这应当作为最后的手段被使用,你的代码中应当没有,或者很少的令人恐慌的东西。 panic 是一个内建函数,可以中断原有的控制流程,进 阅读全文
posted @ 2021-09-14 07:32 brady-wang 阅读(1509) 评论(0) 推荐(0)
摘要: 数组下标越界(运行时错误) package main import "fmt" func main() { var s []string fmt.Println(s) fmt.Println(s[0]) } 运行结果: [] panic: runtime error: index out of ra 阅读全文
posted @ 2021-09-14 07:30 brady-wang 阅读(537) 评论(0) 推荐(0)
摘要: golang程序变量会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全 可知。如果变量通过了这些校验,它就可以在栈上分配。否则就说它 逃逸 了,必须在 堆上分配。 能引起变量逃逸到堆上的典型情况:  在方法内把局部变量指针返回 局部变量原本应该在栈中分配,在栈中回收。但是由 于返回时被 阅读全文
posted @ 2021-09-13 23:08 brady-wang 阅读(112) 评论(0) 推荐(0)
摘要: package main import "fmt" const ( a = iota b = iota ) const ( name = "menglu" c = iota d = iota ) func main() { fmt.Println(a) fmt.Println(b) fmt.Prin 阅读全文
posted @ 2021-09-13 22:22 brady-wang 阅读(99) 评论(0) 推荐(0)
摘要: package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup out := make(chan int) wg.Add(2) go func() { defer wg.Done() for i := 1; i <= 阅读全文
posted @ 2021-09-13 22:02 brady-wang 阅读(152) 评论(0) 推荐(0)
摘要: 你好,我是鸟窝。 在前面的四节课中,我们学习了第一个同步原语,即Mutex,我们使用它来保证读写共享资源的安全性。不管是读还是写,我们都通过Mutex来保证只有一个goroutine访问共享资源,这在某些情况下有点“浪费”。比如说,在写少读多的情况下,即使一段时间内没有写操作,大量并发的读访问也不得 阅读全文
posted @ 2021-09-13 21:43 brady-wang 阅读(771) 评论(0) 推荐(0)
摘要: package main import ( "fmt" ) type People struct{} func (p *People) ShowA() { fmt.Println("showA") p.ShowB() } func (p *People) ShowB() { fmt.Println( 阅读全文
posted @ 2021-09-13 21:31 brady-wang 阅读(56) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 198 下一页