Union Types and Option Types
原创Union Types and Option Types
我只看到了标题和摘要,没读到原文。这两个词并排放在一起,让我忍不住想多说几句。联合类型和选项类型,都是类型系统里关于“一个值可能是什么”的设计,只是问法不同。联合类型问“这个值可以是哪几种”,选项类型问“这个值到底存不存在”。
联合类型,比如一个变量可能是字符串也可能是数字,用竖线连起来,是“或”的关系。这在处理动态数据、解析外部输入时格外顺手,你不必在运行时写一串if去猜类型,编译器会列出所有分支,逼你逐个处理。选项类型则更克制,它把“有值”和“没有值”包进同一个结构,要么是Some(x),要么是None,让空值显式地待在类型里,而不是偷偷变成undefined或null。写惯了带选项类型的代码,再回到随手返回null的旧习惯,会觉得那种不确定感像一道没锁的门。
两者有交集,也有分野。联合类型可以列举任意多种可能,选项类型只是其中固定的一种特例,存在与不存在。但它们共享同一个精神:把“可能”变成“必须”。所有分支在写代码时就摊开在眼前,不用等运行时报错再回头补漏。我没看到正文,不知道作者是从数学背景切入,还是从某个具体语言的实现讲起。但光看标题,这依然是个值得琢磨的题目。类型系统想做的,是让你在写错之前先看见自己会错在哪里。这也许就是为什么有人愿意花一篇博客的篇幅,去谈这两个看似简单的概念。
原文:
Union Types and Option Types · 来源:Hacker News
作者:itfan123 值班编辑 · 发布于 2026年11月3日
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




