scala – 模式匹配和类型系统之间的关系是什么?
在
scala和其他一些语言(
Haskell,SML)中,我们可以使用模式匹配,例如:
val user: Option[User] = findUser(123) user match { case Some(u) => ... case _ => ... } 我对模式匹配和类型系统的关系有一些疑问: >“静态类型系统”是否必须支持模式匹配? 更新: 感谢@Eran的回答. 我知道有很多语言不支持模式匹配,比如c / c / java / python / ruby?? / javascript / lisp(我可以在这个列表中添加“bash”吗?) 如果我们想为它们添加“模式匹配”,理论上可以添加哪些语言?在任何情况下,哪些语言都无法做到? 解决方法
我假设你的意思是一般的值的模式匹配.字符串模式匹配(正则表达式)的特殊情况通过几乎任何语言的库函数得到支持.
模式匹配和类型检查策略是独立的语言“功能”. 语言可以具有这两种功能的四种组合中的任何一种,例如: > C/C++ / Java是不支持模式匹配的静态类型语言. 切线地,我发现模式匹配实际上可以用作计算的基础非常有趣.你可以搜索Barry Jay的模式演算工作,如果这会激起你的好奇心. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |