今天看到一段代码
#! cruby 1.9
lam = lambda do |(a,b),c|
#blahblah
end
它似乎等于
lam = lambda do |l,c|
a,b = *l
#blahblah
end
这种语法有“官方名称”吗?
是的,它被称为解构。
那么什么是解构呢?我找到的最简洁的定义来自Common Lisp the Language。解构允许您在通常可以将值绑定到单个变量的任何地方将一组变量绑定到相应的一组值。它是 Clojure 的一个强大功能,可以让您编写一些非常优雅的代码。有关 Clojure 功能的更多信息,我建议您查看 Jay Field 关于该主题的博客文章。虽然 Ruby 中的解构不如 Clojure 强大,但您仍然可以做一些很酷的事情。