首页
xander's blog
取消

[译]如何在Go中使用接口/How to use interfaces in Go

refer: How to use interfaces in Go 在我开始用Go编程前,我完成我大部分工作都是用Python。作为一个Python工程师,我发现学习使用Go的接口十分困难。就是基础比较简单,并且我知道标准库如何使用,但是需要一些练习在我知道如何设计我自己的接口。在这篇文章里,我将会讨论Go的类型系统中努力解释如何高效使用接口。 接口介绍 那么什么是接口?接口是两个东西...

[译]Go Slices:使用以及原理/Go Slices: usage and internals

refer: Go Slices: usage and internals 介绍 Go的 slices 类型在序列类型上提供一个便捷并且高效的工作方式。Slices类似于其他语言的数组,但是有一些特别的属性。这篇文章将会看看什么是slices和它如何使用。 数组 slices类型是一个抽象建立于Go的基类数组类型,所以想要明白slices我们必须首先明白数组。 一个数组类型定义了指定长度...

shell命令中的2>&1

前言 在shell编程中,我们可以看到许多这样的脚本: command.sh > /dev/null 2>&1 & 对于其中的命令我们应该如何理解,并且如何使用呢? 是什么 2>&1是将标准错误输出重定向到标准输出。每个程序运行后,至少都会打开三个文件描述符,分别是以下三种: 0: 标准输入 1: 标准输出 2: 标准错误输出 ...

python中Lock与RLock的区别

Lock vs RLock 简单对比 主要区别是Lock只能被获取一次,不能被释放前再次被获取。(在它被释放后,可以被任意线程重新获取) RLock则是另一种表现,可以被同一线程多次获取。它需要被释放同样次数才能被释放。 另一个区别是获取Lock可以被任意线程释放,当一个被获取的RLock只能被获取它的线程释放。 以下的例子是展示为什么RLock有时候是有用的。假定你有: def f()...