分类 computer science 计算机科学 下的文章

bjmayor发布于2021-08-29

go defer陷阱

[TOC]

golang defer陷阱

测验

下面程序的输出是什么?

package main



//!+f
func main() {
	println(f1())
	println(f2())
	println(f3())

}

func f1() (r int) {
	defer func() {
		r++
	}()
	return 0
}

func f2() (r int) {
	t := 5
	defer func() {
		t = t + 5
	}()
	return t
}

func f3() (r int) {
	defer func(r int) {
		r = r + 5
	}(r)
	return 1
}

答案

如果你的结果是

1
5
1

恭喜你,答对了。这篇文章您不必看了。

如果答错了。请继续阅读

阅读全文»

bjmayor发布于2021-08-29

一起来说 Vim 语

一起来说 Vim 语

[TOC]

作为一款古老而具有持久生命力的编辑器,Vim 自有它的强大之处。很多人觉得 Vim 的学习曲线太陡峭了,为了能够把 Vim 用得风生水起,不得不记忆大量的命令。如果你是 Vim 新手,刚入门就开始面对着浩如烟海的命令逐条学习,我相信你一定会逐渐失去对它的兴趣。其实,Vim 以一种近乎自然语言的方式帮助你完成文本的编辑工作。只需要熟悉几条简单的语法,你就会坐在旋转座椅上前后打转,感慨美妙的生活又回来了。

我们假设你已经了解了 Vim 的几种常用的工作模式(正常模式、插入模式、命令模式等),如果你还不了解,请先阅读 这里。现在就让我们一起来学习一下 Vim 语吧。

阅读全文»