引言
最近在使用 Git + Neovim 的时候,发现我的工作流还是有一些不那么顺畅的地方。我习惯性退出 Neovim,然后在命令行写 Git 相关的命令,并且在提交代码变更前我习惯用 delta 查看 diff 信息。为了减少要打的字符,我还开启了 Oh My Zsh 的 git
插件,这样我就可以用一堆缩写了,比如 ga = git add
、gcmsg = git commit -m
最近在学习 GitHub Actions,GitHub Actions 是 GitHub 提供的一个特性,可以用来自动化执行一些步骤。在软件开发中,最常见的需要自动化的场景可能就是构建了。对于编译型的编程语言(比如 C/C++)编写的软件,通常需要编写对应的构建的脚本,软件构建的过程涉及到:环境准备、依赖下载、启动构建等。不过,利用 GitHub Actions 来自动化软件构建过程并不是本文的主题。在我思考我可以将 GitHub Actions 用于何处的时候,我想到了:利用 GitHub Actions 来自动化 Hugo 博客的部署。因为 Hugo 博客的部署也涉及到不少一系列固定的步骤 :)
假设函数 A
调用了函数 B
,我们称函数 A
为 Caller,函数 B
为 Callee。
尾调用(Tail-call)指的是:Caller 最后只需要返回 Callee 这个函数调用的计算结果,其他运算都执行完成了1