【发布时间】:2013-12-22 19:36:34
【问题描述】:
我正在做我的第一次实习,一切都很好,我正在努力跟上其他程序员谈论的一切。前几天一位资深程序员告诉我,Ruby 将代码块直接传递给函数的能力比在 JavaScript 中使用匿名函数要好得多。我的理解是 JS 匿名函数是完全一样的——只是通过一个变量作为参数传递一个代码块。是否存在代码块参数优于匿名函数的真实示例?还是只是一种语言优于另一种语言的偏好问题,代码可读性/可重用性问题,还是我只是误解了其他一些基本概念?这是关于在某些任务中使用哪种语言的相对优点的短暂对话,而不是具体的工作问题,这可能是我感到困惑的原因。我在 Google 上搜索了几个简单的代码块示例,并且在 JS 中实现它们时遇到了一些麻烦。期待有关此事的任何意见(匿名或其他)。
【问题讨论】:
-
您正在寻找可重复使用的东西。但是,您将使用那段代码完全取决于程序员或工作组/开发团队中应用的规则。从本质上讲,两者都以相同的结果为目标。 Lambda(匿名)函数只是使用快速和简短函数回调的一个选项。在 JavaScript 中,它们似乎经常在更大的代码块中使用。只要你知道你只会在调用中使用那一小部分 function ,你可能对 lambda 没有意见,而不是给函数自己的空间(可重用)。
-
对于 Ruby,你的意思是这样的:
def meth1; yield if block_given?; end; meth1 { puts 42 }? -
@DarekNędza 是的。特别是那种类型的代码块不是 lambda 或类似的。
标签: javascript ruby