
闭包描述的不是把东西关起来,而是一种“运算后仍留在范围内”的性质。整数相加具有闭包:任取两个整数,相加仍是整数;但整数相除并不封闭,因为1除以2得到的数已经离开整数范围。
因此,闭包从来不是对象单独拥有的标签,必须同时说明对象范围与所用运算。同一批整数对加法封闭,对除法却不封闭。它的重要性在于让规则可以反复使用:上一步的结果仍是下一步可接受的输入,复杂过程才能由相同操作稳定地组成。
闭包与不变量相邻,却不相同。不变量关注某个性质在变换中保持不变;闭包只要求结果仍属于指定范围,并不要求对象原样不动。它也不等于封闭系统,因为系统仍可能与外界交换。判断闭包时,真正要问的是:在哪个范围内、经过哪种操作,结果是否仍可继续参与同一种关系?
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。