- 博客(4)
- 资源 (9)
- 收藏
- 关注
原创 深入理解Go——反射reflect
文章目录反射使用常见场景反射原理反射的基本函数 反射使用常见场景 需要反射的 2 个常见场景: 有时你需要编写一个函数,但是并不知道传给你的参数类型是什么,可能是没约定好;也可能是传入的类型很多,这些类型并不能统一表示。这时反射就会用的上了。 有时候需要根据某些条件决定调用哪个函数,比如根据用户的输入来决定。这时就需要对函数和函数的参数进行反射,在运行期间动态地执行函数。 在讲反射的原理以及如何用之前,还是说几点不使用反射的理由: (1)与反射相关的代码,经常是难以阅读的。在软件工程中,代码可读性也是一
2020-10-26 19:08:12 496
原创 深入理解Go——unsafe
文章目录Go指针和unsafe.Pointerslice与unsafe.Pointer总结unsafe.Pointer Go指针和unsafe.Pointer Go 语言的指针相比 C 的指针有很多限制,是为了享受指针带来的便利,又避免了指针的危险性。 比如 Go的指针不能进行数学运算 a := 5 p := &a p++ p = &a + 3 上面的代码将不能通过编译,会报编译错误:invalid operation,也就是说不能对指针做数学运算。 不同类型的指针不能相互转换
2020-10-26 10:48:33 262
原创 深入理解Go——context(2)
文章目录结构体emptyCtxcancleCtxtimerCtxvalueCtx 结构体 emptyCtx 源码中定义了 Context 接口后,并且给出了一个实现: type emptyCtx int func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { return } func (*emptyCtx) Done() <-chan struct{} { return nil } func (*emptyCtx)
2020-10-20 15:52:47 248
原创 深入理解Go——context(1)
文章目录引入:context有什么作用context 在 Go server里的作用context在实际项目中如何使用传递共享数据取消Goroutine防止goroutine泄漏context包Context 引入:context有什么作用 Go 1.7 标准库引入 context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。 context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、 k
2020-10-09 20:27:09 327
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人