问题标签 [anonymous-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
227 浏览

c# - 匿名代表似乎不强制类型检查

我在下面汇总了一个小代码示例(目前在 C# 3.5 中,但也想知道答案在 C# 4.0 中是否有任何不同)

我有三个简单的委托和三个简单的函数......这里没问题,一切都按预期编译,如果我不小心尝试将委托 A 与方法 B 等链接(参数数量错误),将无法编译。

我正在努力理解的是为什么匿名函数似乎很乐意与所有三个命名的代表联系起来

另外(只是为了给你一个完整的可运行的应用程序......)


编辑 1:使用 Lambda 方法

简单的辅助函数:

...您是否同意这是编写相同代码的更好方法?


编辑 #2 - 答案摘要

我意识到(无论我以哪种方式编写代码),生成的 IL 字节码仍然是类型安全的。

与 C# 中的许多东西一样,命名委托、匿名委托和 lambda 方法各有各的位置,在“代码可读性”、“代码编译器扩展”和个人适用性之间存在平衡正在编写的应用程序。

下面的回复帮助回答了这个问题,并表明编译器确实在做类似于以下的事情。

1 - 它不会让我犯这个错误

2 - “编译器推断类型”将委托(例如 d5_nocompile)扩展为

3 - 可能会出错(仍然是有效代码)

4 - 但是,当重写为 lambda 表达式时,稍后(或向其他开发人员)查看代码时会稍微明显一些

0 投票
6 回答
46079 浏览

php - 为什么以及如何在 PHP 中使用匿名函数?

从 PHP 5.3 开始提供匿名函数。
我应该使用它们还是避免它们?如果是这样,怎么做?

已编辑;刚刚发现了一些使用 php 匿名函数的好技巧……

0 投票
3 回答
7063 浏览

javascript - JavaScript setTimeout setInterval 在一个函数内

我想我可能太累了,但我一辈子都无法理解这一点,我认为这是由于缺乏 javascript 知识

有了这两个函数,我可以调用

并让一个循环计时器运行 5.5 秒然后退出,基本上。



按照我的逻辑,这应该可行,但它根本不是

对此问题的任何见解将不胜感激。

0 投票
6 回答
39833 浏览

php - 匿名递归 PHP 函数

是否有可能有一个递归和匿名的 PHP 函数?这是我让它工作的尝试,但它没有传入函数名。

我也知道这是实现阶乘的不好方法,这只是一个例子。

0 投票
1 回答
2977 浏览

function - Scala 通用函数值(匿名函数) - 缺少参数类型(错误)

我是 Scala 的新手(Scala 代码运行器版本 2.7.7.final),我真的不明白为什么在我们使用高阶函数时它需要调用者提供参数类型。

在下面的示例中,我有一个具有一个功能的独立对象 ( Util)。但是在Main块中,调用者必须将参数类型传递给匿名函数。

为什么 Scala 不从Array类型(即String)推断函数的类型?有什么办法吗?

0 投票
4 回答
3629 浏览

javascript - “反编译”Javascript函数?

[1] 好吧,老实说,我什至不知道如何称呼它。所以让我得到一些半伪代码,以展示我正在尝试做的事情。createDocument()我正在使用 jQuery从 AJAX 调用中获取在页面内、元素内声明的现有脚本。

到目前为止一切顺利,脚本确实包含来自整个脚本块的源代码。现在,在这个“script_content”里面,有自动执行的函数,比如 $(document).ready(function(){...}) ,我“评估”innerHTML的所有东西,它执行这段代码,停止我封装的脚本. 比如不存在的变量等等。

使用正则表达式删除脚本的某些部分并不是一个真正的选择......我真正想要的是在函数内部“行走”。就像做一个(完全虚构的):

有什么方法可以“反汇编”函数,并能够访问其中的“var”?像这个功能:

有可能吗?或者我将不得不使用正则表达式破解我的方式?;P

[2] 另外,有什么方法可以访问使用“createDocument”创建的文档中的 javascript?

0 投票
1 回答
3558 浏览

javascript - detachEvent 不适用于命名的内联函数

我今天在 IE8 中遇到了一个我似乎无法解释的问题(注意我只需要支持 IE):detachEvent使用命名匿名函数处理程序时不起作用。

我最终发现onIframeReadyStateChange改为使用arguments.callee(我通常避免)解决了这个问题:

是什么赋予了?!第一个片段不应该正常工作吗?

0 投票
2 回答
5465 浏览

generics - 如何定义匿名通用 Scala 函数?

假设我有这个:

不要介意函数的作用。有没有让它通用,所以我可以有一个 Option[T]?

0 投票
3 回答
2358 浏览

c++ - 可能有 C++ 匿名函数与提升?

我正在尝试解决匿名函数变得非常容易的问题,并且想知道这在 C++ 中是否可行。

我想做的是(基本上)

对于我必须做的事情,这个例子非常非常简单。在 C# 中,我会做 p => p*5。我知道使用 C++0x 很容易,但我不能使用它。我觉得我应该能够使用 boost::lambda 或 boost::bind 和 boost::function 与占位符的组合来做到这一点,但我似乎无法让它工作。这可能是不可能的,那也很好,但如果不可能,请回答。谢谢。

编辑:好的,似乎 int 的简单情况可以正常工作,更复杂的结构呢?所以,让我们试试

这里我的 C# 表达式将沿着 p => p.temp * 5 的行。这可以在 C++ 中使用 boost 吗?

编辑 2:好的,现在我很好奇 :D 我将如何在 lambda 表达式中调用函数?所以,如果我们有

在 C# 中,我可以调用 p => ChangeVal(p)。C++ lambda 表达式的语法是什么?

0 投票
2 回答
227 浏览

c# - 重载匿名函数

仍然围绕着 Delegates,我很好奇:是否可以重载匿名函数?

这样:

支持:

和:

允许:

和: