问题标签 [function-reference]

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 投票
1 回答
15009 浏览

kotlin - Kotlin 中有构造函数引用吗?

在 Java 中,我们有Class::new构造函数引用的语法。我知道,方法有可调用的引用,但是构造函数呢?对我来说,一个典型的用例是工厂。

0 投票
1 回答
943 浏览

kotlin - 在 kotlin 中如何将函数引用放入数组中

具有类成员函数,例如:

并想放入一个函数引用数组:

它不编译:

如果这样做:

异常崩溃

如何将函数引用放入数组中?

0 投票
5 回答
61 浏览

javascript - 为什么回调必须是一个函数?

我继续看到:

而不仅仅是

在回调中。我没有传入任何参数,那么为什么 () => 执行代码有效但执行代码无效?因为一个函数只代表几行代码,所以它们不是一回事吗?我在其他语言中看到类似的东西,比如使用 lambda 的 java

谢谢你。

0 投票
1 回答
100 浏览

kotlin - 在 lambda 中调用函数和函数引用之间的区别

在以下代码中(在 kotlin 中)

使用现在注释的第一种方式(函数引用)与使用第二种方式(仅在 lambda 中调用函数)相比有什么意义

就结果而言,两者都打印“你好!祝你有美好的一天”

0 投票
2 回答
135 浏览

c# - new 运算符如何与 C# 中的委托一起使用

在这段代码片段中,new MyDel(this.WelcomeUser)是如何工作的?内存中发生了什么,我知道委托是引用类型,那么在堆中是否创建了一个对象,它是哪种类型的对象 - MyDelthis.WelcomeUser到底是什么?它是对方法的引用吗?

0 投票
1 回答
307 浏览

python-3.x - 可以在不同的 *.py 文件之间进行交叉引用吗?

我的程序tui.py由大约 70 个函数组成,它们按组分类到四个不同的文档中:

  • tui.py
  • tbt.py
  • ens.py
  • hmm.py.

大多数函数至少调用一个其他函数,有些还调用位于另一个*.py文件中的函数。

我已经尝试在我的__init__“主”文档(tui.pytui.__init__

tui.py

(部分是为了让它尽可能简单)

tbt.py

这个版本没有给我任何输出。

将所有四个文件都导入到其他每个文件中也无济于事。我还需要在每个子文件中导入python模块(os, shutil),尽管它们已经被导入tui.py...</p>

执行上面的代码有什么问题?它将如何成为工作代码?

编辑:我收到以下错误,具体取决于更改源文件中的三行:

原始形式的片段

让“tbt.py”找到“擦除”

制作绝对模块名称

让“擦除”被发现

0 投票
1 回答
109 浏览

kotlin - 我可以在 Kotlin 中获取对具有默认参数的函数的函数引用,作为无参数函数吗?

是否可以获得对具有默认参数的函数的函数引用,指定为无参数调用?

InputStream.buffered()是一种扩展方法,可将InputStreama 转换为BufferedInputStream缓冲区大小为 8192 字节的 a。

我想使用默认参数有效地引用扩展方法,并将其传递给另一个函数。

doesNotCompilealsoDoesNotCompile产生以下错误

类型不匹配:推断类型为 KFunction2 但 (InputStream) -> BufferedInputStream 是预期的

类型不匹配:推断类型为 KFunction2 但 (InputStream) -> InputStream 是预期的

我理解错误是因为InputStream.buffered()它实际上(InputStream) -> BufferedInputStream不是,而是一个快捷方式(InputStream, Int) -> BufferedInputStream,将缓冲区大小作为参数传递给 BufferedInputStream 构造函数。

动机主要是风格原因,我宁愿使用已经存在的引用,而不是在最后一刻创建一个

0 投票
1 回答
114 浏览

kotlin - 在 Kotlin 中实例化函数类型的最佳实践

我想知道,尽可能使用新代码块(lambda 表达式)或使用对现有声明的可调用引用将函数作为引用传递是否更好(以根据最佳实践获得干净代码的方式) .

所以最好使用

或者

0 投票
1 回答
218 浏览

c++ - std::bind 在 std::array 的 operator[] 上

我试图在 std::array 的 or operator[] 处绑定一个成员函数,但编译器(gcc 7.3)说它无法确定类型名_Func。所以我创建了自己的结构数组来查看问题出在哪里。但在这种情况下它工作得很好。

编译错误是:

没有匹配函数调用'bind(, const std::_Placeholder<1>&, const std::_Placeholder<2>&)' auto arr_x = std::bind(&array::at, _1, _2); ^


我已经意识到是什么导致了这个错误,但我仍然不知道如何解决它。问题是编译器不知道我指的是哪个函数,因为这些函数有 const 和非 const 变体。此代码模拟相同的错误。

我仍然不知道如何指定我要调用哪个版本的函数,如何绑定 const 版本和非 const 版本?

0 投票
2 回答
42 浏览

r - paste 如何在函数中工作

我有如下数据框

在执行以下代码时,两列中的项目相加。请解释该函数的工作原理以及该函数如何知道它应该添加行副数据而不是列。

下面的代码在数据框中添加了一个新列。我的问题是这里输入了 1 行,它是如何将其视为新列的。