JavaScript 中的模式匹配

作者: admin 日期: 2018-06-20 16:28:16 人气: - 评论: 0

在使用Ocaml Scala Haskell 编程的时候使用其中的模式匹配功能可以大大简化程序开发,在使用lisp开发的时候也可以引用第三方的宏包来获得模式匹配的能力,可见模式匹配应该是"现代"编程语言的一个基础设施,最近几年JavaScript中关于模式匹配的提案也开始出现

最新提案:

https://github.com/tc39/proposal-pattern-matching


demo:

const getLength = vector => {  case (vector) {
    when { x, y, z } ->
      return Math.sqrt(x ** 2 + y ** 2 + z ** 2)
    when { x, y } ->
      return Math.sqrt(x ** 2 + y ** 2)
    when [...etc] ->
      return vector.length
  }
}getLength({x: 1, y: 2, z: 3}) // 3.74165


这个提案和之前的一些提案相比保守了很多,和Ocaml里的模式匹配也有一些差距,而且是带副作用的,不是很符合我个人的口味

相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0215秒, 内存占用1.83 MB, 访问数据库13次

闽ICP备15009223号-1