两分钟让你明白Go中如何继承

最近在重构代码的时候,抽象了大量的接口。也使用这些抽象的接口做了很多伪继承的操作,极大的减少了代码冗余,同时也增加了代码的可读性。

然后随便搜了一下关于Go继承的文章,发现有的文章的代码量过多,并且代码format极其粗糙,命名极其随意,类似于A、B这种,让人看着看着就忘了到底是谁继承谁,我又要回去看一遍逻辑。

虽然只是样例代码,我认为仍然需要做到简洁、清晰以及明了。这也是我为什么要写这篇博客的原因。接下里在这里简单分享一下在Go中如何实现继承。

继续阅读
广告

Go源码解析-Println的故事


本文主要通过平常常用的go的一个函数,深入源码,了解其底层到底是如何实现的。

Println

Println函数接受参数a,其类型为…interface{}。用过Java的对这个应该比较熟悉,Java中也有…的用法。其作用是传入可变的参数,而interface{}类似于Java中的Object,代表任何类型。

所以,…interface{}转换成Java的概念,就是Object args ...

Println函数中没有什么实现,只是return了Fprintln函数。

继续阅读

用go-module作为包管理器搭建go的web服务器

本篇博客主要介绍了如何从零开始,使用Go Module作为依赖管理,基于Gin来一步一步搭建Go的Web服务器。并使用Endless来使服务器平滑重启,使用Swagger来自动生成Api文档。

源码在此处:项目源码

大家可以先查看源码,然后再根据本篇文章,来了解搭建过程中服务器的一些细节。

搭建环境

以下所有的步骤都基于MacOS。

安装go

在这里推荐使用homebrew进行安装。当然你也可以使用源码安装。

继续阅读