refer: Strings, bytes, runes and characters in Go 介绍 之前的博客 介绍了slices 在Go中如何工作,使用一些例子来解释他们的实践机制。在此基础上,这个博文讨论了Go中的字符串。首先,对于一篇博客而言字符串可能看起来是一个很简单的话题,但是如何正确使用他们不仅仅需要明白他们怎么工作,还要理解他们和字节(byte),字符(charact...
说明 本文档中代码中的尖括号都代表是可替换的参数 前言 这一篇文章主要用于介绍接触过的vim插件。主要参考来源:https://vimawesome.com/ 插件 Vundle 源码地址: https://github.com/VundleVim/Vundle.vim 查阅多篇博客后,可以推断出这个是一个比较老的vim插件管理器。 官方文档描述如下: Vundle...
refer: How to use interfaces in Go 在我开始用Go编程前,我完成我大部分工作都是用Python。作为一个Python工程师,我发现学习使用Go的接口十分困难。就是基础比较简单,并且我知道标准库如何使用,但是需要一些练习在我知道如何设计我自己的接口。在这篇文章里,我将会讨论Go的类型系统中努力解释如何高效使用接口。 接口介绍 那么什么是接口?接口是两个东西...
refer: Go Slices: usage and internals 介绍 Go的 slices 类型在序列类型上提供一个便捷并且高效的工作方式。Slices类似于其他语言的数组,但是有一些特别的属性。这篇文章将会看看什么是slices和它如何使用。 数组 slices类型是一个抽象建立于Go的基类数组类型,所以想要明白slices我们必须首先明白数组。 一个数组类型定义了指定长度...
前言 在shell编程中,我们可以看到许多这样的脚本: command.sh > /dev/null 2>&1 & 对于其中的命令我们应该如何理解,并且如何使用呢? 是什么 2>&1是将标准错误输出重定向到标准输出。每个程序运行后,至少都会打开三个文件描述符,分别是以下三种: 0: 标准输入 1: 标准输出 2: 标准错误输出 ...
Lock vs RLock 简单对比 主要区别是Lock只能被获取一次,不能被释放前再次被获取。(在它被释放后,可以被任意线程重新获取) RLock则是另一种表现,可以被同一线程多次获取。它需要被释放同样次数才能被释放。 另一个区别是获取Lock可以被任意线程释放,当一个被获取的RLock只能被获取它的线程释放。 以下的例子是展示为什么RLock有时候是有用的。假定你有: def f()...
发现新版本的内容。