今天带大家来学习一个特殊的golang语法。 我们看一下context的结构,会发现一个很新鲜的channel语法: // A Context carries a dea…
标签:golang
NSQ 源码阅读(二) NSQD 入口函数
前言 NSQD是 nsq 的主要逻辑部分,请参考官方文档。我们直接看代码。 入口函数 main 函数位于 github.com/nsqio/nsq/apps/nsqd/nsqd.go func main() { prg …
Lite语言——从入门到放弃(二)
github.com/kulics/lite这次我们来看看 Lite 的函数和结构设计。 函数声明 在 Lite 中,函数也是表达式,必须赋值给变量或常量,声明的格式为 # (->) {} # function …
Go RWMutex 源码学习
概述 上一篇文章我们看go了互斥锁的具体实现。但是如果业务逻辑是读多写少,如果每次读写都使用互斥锁那么整个效率就会变得很低。其实如果只是读的话并不需要互斥锁来锁住数据。只有写操作的时候需要互斥锁,但是如果有人读那么写操作…
通过leetcode学习位运算及其Go实现
问题描述 461. Hamming Distance即求两个正整数的二进制对应位数不同的个数 原理说明 从问题描述来看,最直观的解决方法就是十进制数先转成二进制,再比对相同位数是否相同,不同则计数器累加,最终计数器的值即…
剥开比原看代码05:如何从比原节点拿到区块数据?
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc… 在前一篇中…
区块链概念 That You Must Know 第四期(3)
第四期 简介go语言下挖矿难度的代码实现(3) 卡酷少 Wechat:13260325501 经过之前所有的铺垫,这一期我们将对难度的代码实现作出简单演示。(以下是在不考虑近期各机构对于区块存储信息改进的情况下。对于区块…
k8s与存储--flexvolume解读
前言 k8s 非常厉害的地方就在于可扩展性,而存储领域,支持flexvolume 和 csi 两种方式来进行扩展。今天主要讲下flexvolume。FlexVolume 是 Kubernetes v1.8+ 支持的一种存…
我的Go服务Docker部署模版
关于Docker 网上关于Docker的介绍有很多,我就不复制粘贴了,大家可以自行查找。为什么用Docker?,一般来说是为了保证开发和线上环境一致,并能保证机器的干净,不会被安装一堆依赖。说下题外话,之前开发EOS的时…
Go学习之Channel总结
Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。 类型 T表示任意的一种类型 双向: chan T 单向仅发送: chan &…
单元测试在 golang 中的实践
单元测试是什么? 首先需要明确的就是,单元是什么?是一个函数?一个接口?还是一个模块? 这个可能每个人心中都用不同的定义。我比较赞同观点是:单元是指一段逻辑。 因此,单元测试就是对一段代码逻辑的正确性进行校验进行测试 单…
Golang学习笔记 - 标准库"net/http"的简析及自制简单路由框架
原文链接:http://targetliu.com/golang-http-router/ 还是在继续学习Go的路上,曾经在使用PHP的时候吃过过度依赖框架的亏。现在学习Go的时候决定先打好基础,从标准库学起走。 源码分…