问题标签 [function-literal]

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 投票
2 回答
48 浏览

javascript - Javascript 中的命名函数在声明之前可访问,但函数文字不可访问

我试图弄清楚这是如何工作的。当我引用尚未声明的命名 Javascript 函数时,在某些情况下,它可以工作。但是,如果我使用函数文字,它不会,但它也不会因ReferenceError.

这返回

我想知道第一个示例是如何工作的——这是一种解释语言,不是编译的,所以我希望任何形式的前向引用都会失败——为什么第二个示例不生成ReferenceError?

0 投票
2 回答
505 浏览

scala - 压缩集合上的 Scala 函数文字和占位符语法

我目前正在学习 Scala,并且一直在努力在zipped 集合上使用占位符语法。例如,我想从 l2[i] >= l1[i] 的项目中过滤压缩数组。如何使用显式函数文字或占位符语法来做到这一点?我努力了:

尝试占位符语法:

所以它似乎需要一个函数 a Pair

那么我做错了什么?match方式是唯一的吗?谢谢您的帮助。

0 投票
1 回答
88 浏览

c - 如何传递 extern(C) 函数文字?

假设我正在与 C 交互。

这是接口的包装函数。

都好。

哦哦:

因此,它希望我将函数文字设为 extern(C)。那么我该怎么做呢?我找不到任何办法这样做。

0 投票
1 回答
146 浏览

c - 为什么这个函数被视为一个委托?

在尝试包装接受回调的 C 函数时,我遇到了成员函数被视为委托的问题。C 函数不会接受委托,所以我选择了其他东西:

如您所见,我向回调设置函数传递了一个调用委托的函数文字(这将是我在此处传递的成员函数)。

但是,它并没有像我预期的那样结束:

在错误中,它显示第二个参数为 type void delegate

所以。我的问题是:为什么会发生这种情况?正如你可以清楚地看到的,它function void在代码中说。

注意:我已经看到了:将代表传递给 D 中的外部 C 函数。解决方案显然是一个黑客。但是,如果我在互联网上找不到解决方法,我会尝试一下。

0 投票
1 回答
189 浏览

scala - 在函数文字上使用下划线作为输入参数时收到“缺少参数类型”

我有一个trait带有泛型参数的方法,其中包含我试图将默认实现定义为“空”的方法。

我在 . 之后的下划线处收到“缺少参数类型”错误failureTEvent: FailureBase[T, V] => Unit =。我无法弄清楚如何让 Scala 编译器放弃在那个时候必须知道类型信息,因为它不被使用或不需要。

我考虑将参数更改为:

但是,我不喜欢客户现在必须将他们的功能包装在Some(). 我更希望允许他们不指定参数,或者指定没有包装器的参数。

非常感谢对此的任何指导。

0 投票
1 回答
134 浏览

scala - scala函数字面混淆

我做了一个单元测试来研究 Scala 函数文字格式,发现它很混乱,你能帮我理解不同语法的含义吗?

为什么中的println(suppiler.apply())语法不正确takeFunctionLiteral?两者不是等价的吗?和有什么区别

提前致谢。

0 投票
2 回答
1361 浏览

scala - Scala 编译错误 - 发现:Int required: Int => Int

我是斯卡拉的新手。我不明白以下代码的编译错误:

当我打电话时

我收到以下错误:

请解释一下是什么问题?还请建议一个很好的链接来理解 scala 中的函数和函数文字。我无法完全理解。

非常感谢

编辑:

请说出两者的区别

0 投票
1 回答
111 浏览

scala - scala 中的函数和函数字面量

我是 Scala 的新手。请说出两者的区别

0 投票
0 回答
41 浏览

scala - 使用 toSet 链接映射并使用带下划线的函数文字时出现类型错误

将带有下划线的函数文字作为参数传递给与另一个集合(例如List )上的toSet链接的映射会导致类型错误:

但是,当以相同方式生成的Set被分配给一个值时,随后的map调用将按预期工作:

回到链接,当构造函数用于从另一个集合(例如List )生成Set时,它按预期工作:

这是Scala编译器中的错误还是我还缺少其他东西?

0 投票
1 回答
692 浏览

go - 函数作为参数,访问内部参数

valyala/fasthttp实现了以下函数类型:

它在buaazp/fasthttprouter中使用如下:

我正在尝试像这样包装这些(开放以获取有关实施的建议):

我怎样才能做到这一点?或者,如果这根本不是要走的路,我怎样才能达到下面提到的路由器包的目标?


背景

目标:我的愿望是包装工具包(会话、数据库、路由等),以使我的应用程序与这些包的实现无关。我希望这样做主要是为了能够使用特定于域的功能来扩展它们,并且能够将一个 3rd 方库切换到另一个库,如果我需要这样做的话。它还使调试和记录更容易。

方法:我创建本地类型和函数,它们映射到导入包的功能。

问题:我被困在如何正确包装外来(即导入)函数类型上。