【发布时间】:2014-06-22 12:24:51
【问题描述】:
在 scala 和其他一些语言(Haskell、SML)中,我们可以使用模式匹配,例如:
val user: Option[User] = findUser(123)
user match {
case Some(u) => ...
case _ => ...
}
我对模式匹配和类型系统的关系有一些疑问:
- “静态类型系统”是否必须支持模式匹配?
- 是否有任何“动态类型系统”语言支持模式匹配?
更新:
感谢@Eran 的回答。
我知道有很多语言不支持模式匹配,例如 c/c++/java/python/ruby/javascript/lisp(我可以在这个列表中添加“bash”吗?)
如果我们要给它们添加“模式匹配”,理论上有哪些语言可以添加呢?还有哪些语言无论如何都做不到呢?
【问题讨论】:
标签: scala pattern-matching type-systems