Go 内部包

Go
在 Go 语言中,所有成员在包内均可访问,无论是否在同一源码文件中。但只有名称首字母为大写的成员可导出,在包外可视。 但是在进行代码重构时,我们会将一些内部模块陆续分离开来,以独立包的形式维护。这时,基于首字母大小写的访问权限控制则显示过于粗犷。我们希望这些包的可导出成员仅在特定范围内可访问,而不是 …...
Read more →

Go 延迟调用

Go
语句 defer 向当前函数注册稍后执行的函数调用。这些调用被称作延迟调用,因为它们直到当前函数执行结束前才被执行,常用于资源释放、解除锁定以及错误处理等操作。 延迟调用,注册的是调用,参数在注册时被复制并缓存起来。多个延迟注册按 FILO 的次序执行。 func main() { x, y := …...
Read more →

反馈与触发器

计算机原理
以下电路中包含两个或非门、两个开关和一个灯泡。 这个电路用了特殊的连线方式:左边或非门的输出是右边或非门的输入,而右边或非门的输出是左边或非门的输入。这种连接方式我们称之为反馈(feedback)。 在初始状态下,电路中只有左边的或非门输出电流,这是因为其两个输入均为 0。 下面先闭合上面的开关,左 …...
Read more →

二进制减法

计算机原理
被减数大于减数 一个典型的借位减法题目如下: 最右列的 3 小于 6,因此从 5 上借 1,再用 13 减去 6 等于 7;由于 5 已经被借 1 了,因此现在的值为 4,4 小于 7,同样需要从 2 借 1,用 14 减去 7 等于 7;最左的一列,2 被借了 1,现在的值为 1,1 减去 1 为 …...
Read more →

二进制加法器

计算机原理
计算二进制数加法与计算十进制数加法非常相似,最大的不同就在于二进制加法中用到了一个更为简单的加法表。 + 0 1 0 0 1 1 1 10 以上加法表可以重新为带前导零的形式。 + 0 1 0 00 01 1 01 10 一对二进制数相加的结果中具有两个数位,其中一位叫做加法位(sum bit),另 …...
Read more →