摘要:摘要:今天我们来学习一下 golang 中的反射,这个是 golang 语言中的一大利器。 什么是反射 Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制 --《Go 语言圣经》 为什么要用反射 需要使用反射的两个常见场景
阅读全文
摘要:摘要:今天面试中,面试官让写使用 goroutine 交替打印字符 ABC,没有写出来,所以今天总结一下: 在学习操作系统信号量章节的时候,我们知道用信号量可以实现同步和互斥问题,比如著名的生产者和消费者问题,读者写者问题以及哲学家就餐问题。一般情况下: 把初始化信号量设置为0,用于解决互斥问题 把
阅读全文
摘要:摘要:今天我们来学习 Golang 中的 interface 类型。 Go 的 5 个关键点 interface 是一种类型 type Animal interface { SetName(string) GetName() string } 首先 interface 是一种类型,从它的定义中就可以
阅读全文
摘要:摘要:今天看算法,看到一个有意思的题目:给定一个函数 rand(5) 能随机生成 [1, 5] 之间的正整数,你能实现 rand(7) 吗? 尝试 如果我们用 rand(5) + rand(5) 呢? rand(5) + rand(5) 的结果是 [2, 10], 我们思考一下就知道,这些数肯定不是
阅读全文
摘要:摘要:今天我们来学习 Golang 中的 另外一种常用的数据类型,通过数据结构和源码来分析 golang 中的 map 是如何实现的。 数据结构 bucketCntBits = 3 bucketCnt = 1 << bucketCntBits // Maximum average load of a
阅读全文
摘要:摘要: 今天我们来学习 Golang 中的一个基本的数据结构 slice, 这个和 C++ 中的 vector 容器思想基本一致,是一个容量可变的数组,那我们就来看下它和 array 的区别和联系,并对其中的典型操作给出分析。 数据结构 // StringHeader is the runtime
阅读全文
摘要:摘要:由于在实习过程中,做的项目都是基于 Golang 语言,所以在面试时,面试官也一定会理所当然的问 Golang, 所以在最近一段时间,主要学习这门语言的基础知识,以及常出的面试题。 简单介绍 字符串虽然在 Go 语言中是基本类型 string, 但是它实际上是由字符组成的数组,类似于 C 语言
阅读全文