问题标签 [first-class-functions]

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 回答
17972 浏览

go - Go中的动态函数调用

我正在尝试动态调用返回不同类型的函数struct

例如,让我们看下面的代码。

我想将函数doAdoB作为参数传递给将执行函数并对结果进行 JSON 编码的通用函数。如下所示:

但是当我这样做时:

我收到以下错误:

有没有办法实现这种动态调用?

0 投票
2 回答
111 浏览

function - F# 函数组合,其中第一个函数的元数 >1

我有两个功能fg

我想组合(>>)它们以获得一个新的功能,f然后执行g结果。

该解决方案的行为应类似于:

这不起作用:

应该如何>>使用?

0 投票
1 回答
103 浏览

swift - 使用重载函数作为一等公民

假设我们在一个类中有多个重载函数:

我们有一些 API 可以将函数作为参数:

我们如何将 appendToABC 函数之一作为参数传递给 printString 函数?

我考虑过用闭包包装函数,但看起来不太好

0 投票
3 回答
43 浏览

javascript - 使用第一类的这两个功能有什么区别?(javascript)

有两个函数,一个使用第一类并将一个函数分配给一个变量然后返回该变量,另一个只是一个普通的简单函数。在那里,我不明白为什么一个比另一个更好,因为它们看起来和对我做的事情完全相同。有人可以帮我一下,让我更容易理解其中的区别吗?

头等舱

简单的功能

0 投票
3 回答
5192 浏览

java - 如何将方法放入地图?

我有字符串,我需要在其中找到括号(), {}[]并使用堆栈来检查正确性,如果有错误则打印错误的位置。因此,我将它们拆分为 char 数组,然后想逐个检查符号,如果它匹配我的地图,则执行我向/从堆栈推送/弹出的方法。

我想象它是这样的:

那么有这样的事情吗?或者我必须使用开关?

0 投票
2 回答
7224 浏览

typescript - TypeScript 中的回调函数

我刚刚开始使用 Angular 2 和 TypeScript,我似乎无法弄清楚如何使用回调函数,我知道这可能是一个愚蠢的问题,但鉴于这个常规的 javascript 代码:

TypeScript 中的等价物是什么?

0 投票
1 回答
852 浏览

python - 调用函数的 Python 重复函数

我有一个程序,用户应该能够从下拉列表中选择命令。在这个列表中,还有一个重复命令,它基本上完成了 for 循环所做的工作,因此介于两者之间的所有命令repeatend repeat应该循环指定的次数。见图片:

在此处输入图像描述

现在,我还不知道如何以编程方式处理重复功能。我知道python处理对象之类的类,所以也许这会有所帮助,但我有点迷茫。

目前,我将字符串列表发送到处理命令执行的线程,并对其进行解析并执行每个命令。

我将如何重写它,使其repeat成为一个可调用的函数/方法?

0 投票
3 回答
2249 浏览

python - Python:类方法中的变量

我正在学习 python 并试图根据角色的热区编写一个伤口系统。这是我写的。不要过多评价我。

我希望 skin_cut 输入被识别为“Skin Cut”,然后添加到我定义为列表的 l_arm。但是,我总是收到名称错误(未定义 l_arm)。如果我用'wound'作为第一个参数重写方法,名称错误现在带有未定义的'wound'。这告诉我这是我错过的课程结构中的一些东西,但我不知道是什么。

0 投票
1 回答
347 浏览

python - 创建类后在方法上设置属性引发“'instancemethod'对象没有属性”但属性显然存在

在 Python(2 和 3)中,我们可以为函数分配属性:

这很酷。

但是为什么我们不能foo.bar在以后改变呢?例如,在构造函数中,像这样:

Python声称没有,bar即使它在前一行打印得很好。

如果我们尝试直接在类上更改它,也会发生同样的错误:

这里发生了什么,即为什么我们会看到这种行为?

有没有办法在创建类后设置函数的属性?

(我知道有多种选择,但我明确地想知道这里方法的属性,或者可能是更广泛的问题。)


动机:Django 利用了在方法上设置属性的可能性,例如:

0 投票
1 回答
291 浏览

hhvm - Hack 命名函数是否完全是一等公民?

HHVM 3.9 不喜欢带有命名函数的三元语句,即使通过fun(), 但 ≥3.10 对它们完全没问题。然而,这似乎是少数情况之一,因为 3.9确实接受从具体函数返回的命名函数,以及接受传递给其他函数 ( 3v4l ) 的命名函数:

3.9 和 3.10 之间发生了什么变化?在 HHVM ≥3.10 中是否存在无法以这种方式引用和使用命名函数的情况?