Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby代码块与javascript匿名函数的区别_Javascript_Ruby - Fatal编程技术网

Ruby代码块与javascript匿名函数的区别

Ruby代码块与javascript匿名函数的区别,javascript,ruby,Javascript,Ruby,我正在做我的第一次实习,一切都很顺利,我正在努力跟上其他程序员谈论的一切。前几天一位高级程序员告诉我,Ruby将代码块直接传递到函数中的能力比在JavaScript中使用匿名函数要好得多。我的理解是,JS匿名函数完全是一样的——只是通过变量作为参数传递代码块。是否有代码块参数优于匿名函数的真实示例?或者这仅仅是一种语言优先于另一种语言的问题,是代码可读性/可重用性问题,还是我只是误解了其他一些基本概念?这是一次关于在某些任务中使用哪种语言的相对优点的短暂对话,而不是一个具体的工作问题,这可能是我

我正在做我的第一次实习,一切都很顺利,我正在努力跟上其他程序员谈论的一切。前几天一位高级程序员告诉我,Ruby将代码块直接传递到函数中的能力比在JavaScript中使用匿名函数要好得多。我的理解是,JS匿名函数完全是一样的——只是通过变量作为参数传递代码块。是否有代码块参数优于匿名函数的真实示例?或者这仅仅是一种语言优先于另一种语言的问题,是代码可读性/可重用性问题,还是我只是误解了其他一些基本概念?这是一次关于在某些任务中使用哪种语言的相对优点的短暂对话,而不是一个具体的工作问题,这可能是我感到困惑的原因。我在谷歌上搜索了几个简单的代码块示例,在JS中实现它们几乎没有问题。期待有关此事的任何意见(匿名或其他)

它们并不完全相同。主要原因是使用隐式和显式返回值


您可以在这里阅读一篇好文章:

您正在寻找可重用的东西。然而,您将使用这段代码完全取决于程序员或工作组/开发团队中应用的规则。从本质上讲,两者的目标都是相同的。Lambda(匿名)函数只是使用快速短函数回调的一个选项。在JavaScript中,它们似乎经常从更大的代码块中使用。只要你知道你只会在一次调用中使用这个小函数一次,你可能会同意lambda给这个函数自己的空间(可重用);如果给定块_,则为屈服?;结束;meth1{puts 42}?@DarekNędza是的。特别是那种类型的代码块,不是lambda之类的。这真是一个奇妙的阅读!“我在Ruby/JavaScript开发人员的早期阶段就有过这样的印象,但我忽略了一个重要的微妙之处,这一点后来证明具有重大意义。这种微妙之处通常被称为“坦恩特对应原则”。简言之,坦恩特对应原则说:对于给定的表达式expr,lambda expr应该是等效的谢谢!事实上这是准确的答案。我接受了。我正忙着看博客;>@wormtown你不需要更多吗?@DarekNędza不,谢谢。phoet找到了我想要的准确答案。两者之间的确切区别。我的理解正确吗,在最新版本的ecma中,这不再是真的?