[golang] go的typeswitch guard语法

最近在实现golang,看到个go的特性语法: typeswitch guard。 typeswitch guard语法如下: 运行时判断p的类型,并根据是什么类型进行对应操作,较之与其他语言比如java的连续 在语法上要美观一些: 另外需要注意它的参数只能是interface,因为其他类型都可以被 ... »

Golang 调用 Python 代码

go 中的 cgo 模块可以让 go 无缝调用 c 或者 c++ 的代码,而 python 本身就是个 c 库,自然也可以由 cgo 直接调用,前提是指定正确的编译条件,如 Python.h 头文件(),以及要链接的库文件。本文以 Ubuntu 18.04 作为开发和运行平台进行演示。 其实在使用 ... »

说说GIL

上一篇:线程深入篇引入 说说GIL 尽管Python完全支持多线程编程, 但是解释器的C语言实现部分在完全并行执行时并不是线程安全的,所以这时候才引入了GIL 解释器被一个全局解释器锁保护着,它确保任何时候都只有一个Python线程执行(保证C实现部分能线程安全) GIL最大的问题就是Python的 ... »

还记得八皇后的解法吗

“还记得八皇后的解法吗?” “上个世纪的事情,不记得了。” “…… 现在回忆一下?” “开会,回头说。” “ fuck u ” “ u shit ” 我有一个C++基友,这么称呼是因为他入行时用的是C++。虽然在游走于腾讯、金山之后,如今已经十八般武艺略懂了,但说起来还是C++的标签最刺眼。 当你有 ... »

体验go语言的风骚式编程

最近想搞搞后台开发,话说注意力就转移到了公司用的golang。用Go做微服务比较方便,或许是因为golang强悍的语法吧,看到go的语法,自己已被深深的吸引。来我们一起感受下Go的风骚式的代码风格。 ... »

第一节 如何用Go实现单链表

一、概念介绍 下面这副图是我们单链表运煤车队。 每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据。前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车厢,却不知道前面是哪节车厢拉的自己。第一节车厢没有任何车厢拉它,我们就叫它车头,第五节车厢后面拉其他 ... »

go微服务框架go-micro深度学习(二) 入门例子

上一篇帖子简单介绍了go-micro的整体框架结构,这一篇主要写go-micro使用方式的例子,中间会穿插一些go-micro的源码,和调用流程图,帮大家更好的理解go-micro的底层。更详细更具体的调用流程和细节,会在以后的帖子里详细讲解。 例子的github地址: gomicrorpc 跑一遍 ... »

解决go get golang.org上的包被墙的问题

:今天get grpc包的时候发现拉不下来被墙了,在github.com上搜索golang,进入仓库找到对应的包,下载下来,install了一下,拿到了一些丢失的依赖包,比如: 从github上的golang库中一个一个找到对应的包,下载下来解压到指定的目录中,再install grpc成功,问题解 ... »

Bytom矿池接入协议指南

矿机配置 + https://gist.github.com/HAOYUatHZ/a47400bde4a138825faef415387b532c 固件升级 + https://shop.bitmain.com.cn/support.htm?pid=00720180519161243572MB78l ... »

go微服务框架go-micro深度学习(一) 整体架构介绍

产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身。项目微服务化,松耦合模块间的关系,是一个很好的选择,随然增加了维护成本,但是还是很值得的。 微服务化项目 ... »

Derek解读Bytom源码-启动与停止

简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 本章介绍bytom代码启动、节点初始化、及停止的过程 作者使用MacOS操作系统,其他平台也大同小异 Golang V ... »

海量日志实时收集系统架构设计与go语言实现

日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求、运维成本低、稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的。然而这时理想中的日志收集系统,现实往往不是这样的...本篇的主要内容是:首先吐槽一下公司以前的日志收集和上传;介绍新的实时日志收集系统架构;用go语言 ... »

Derek解读Bytom源码-孤块管理

作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 本章介绍bytom代码孤块管理 作者使用MacOS操作系统,其他平台也大同小异 Golang Ver ... »

bytom交易说明(账户管理模式)

该部分主要针对用户使用bytom自带的账户模式发送交易 1、构建交易 API接口 build transaction,代码 "api/transact.go L120" 以标准的非BTM资产转账交易为例,资产ID为全F表示BTM资产,在该示例中BTM资产仅作为手续费,该交易表示花费99个特定的资产到 ... »

实现一个 RESTful API 服务器

RESTful 是目前最为流行的一种互联网软件结构。因为它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 什么是 REST REST(REpresentational State Transfer),首次出现在 2000 年 Roy Thomas Fielding 的博士论文 ... »

golang 使用pprof做性能优化

软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。 golang的工具包内自带pprof功能,使找出程序中占内存和CPU较多的部分功能方便了不少。加上uber的火焰图,可视化显示,让我们在分析程序时更简单明了。 pprof有两个包用来 ... »