Golang unsafe 和 uintptr 指针(转载)
1. golang中的指针类型 指针有三个类型: 一种是我们常见的,用去表示的指针; 一种是unsafe.Pointer,Pointer是unsafe包下的一个类型; 最后一种是uintptr,uintptr 这玩意是可以进行运算的也就是可以++–; 他们之间有这样的转换关系: *<=> unsafe.Pointer… 阅读更多 »Golang unsafe 和 uintptr 指针(转载)
1. golang中的指针类型 指针有三个类型: 一种是我们常见的,用去表示的指针; 一种是unsafe.Pointer,Pointer是unsafe包下的一个类型; 最后一种是uintptr,uintptr 这玩意是可以进行运算的也就是可以++–; 他们之间有这样的转换关系: *<=> unsafe.Pointer… 阅读更多 »Golang unsafe 和 uintptr 指针(转载)
1. 类型转换方式 1.1. 强制类型转换 语法:<结果类型> := <目标类型> ( <表达式> ) 类型转换是用来在不同但相互兼容的类型之间的相互转换的方式,所以,当类型不兼容的时候,是无法转换的。 func main() { //整型int强转为浮点型,强转为int64 var num1… 阅读更多 »Golang类型转换小结
golang标准库中提供了bytes包,该包几乎和strings包给string提供的功能一样,只不过bytes包对应的是[]byte。和strings一样,并不修改传入变量,而是返回其副本修改之后的内容。 整个包分为以下几种操作:转换、比较、去除、分割、查找、替换 1. 转换 将s的副本中所有字符修改成大写(小写),然后返回 … 阅读更多 »golang中bytes包(转载)
1. go mock单元测试 搞单元测试,如果碰到这些情况: 一个函数,内部包含了很多并且很深的调用,但是如果单单测这个函数,其实实现的功能很简单。 一个函数,包含了其他还未实现的调用。 函数内部对数据的要求极为苛刻。 那么这时候就可以考虑使用mock来处理。 mock,简而言之就是可以通过注入我们所期望返回的数据,或者我们所期… 阅读更多 »Golang单元测试gomock
context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 1. 前言 这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用cont… 阅读更多 »深入理解Golang之context(转载)
1. 概述 在golang中,reflect是一个比较高级的话题,本文将尽可能简单而又清楚的介绍相关内容。 本文将从如下几个方面进行阐述: 什么是reflection ? 如何检查一个变量var 并获得其真实类型 golang中的reflect包 reflect.Type 和 reflect.Value reflect.Kind… 阅读更多 »Golang中reflect反射
1. 内部结构 1.1. 数组 Array 先说一下数组, 的确在 Go 语言中, 因为 slice 的存在, 使得 array 的出场率不高。但想要很好的理解 slice, 还是要先要了解 array. Go 语言的数组和其他语言一样, 没有什么特别的地方, 就是一段以元素类型(如int)为单位的连续内存空间。数组创建时, 被… 阅读更多 »Golang数组和切片区别及切片扩容