问题标签 [pass-by-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 投票
10 回答
43665 浏览

c# - C# 中引用类型变量的“ref”有什么用?

我知道如果我将值类型(int,struct等)作为参数(不带ref关键字)传递,则该变量的副本将传递给该方法,但如果我使用ref关键字,则传递对该变量的引用,不是新的。

但是对于引用类型,如类,即使没有ref关键字,引用也会传递给方法,而不是副本。那么ref关键字与引用类型的用途是什么?


举个例子:

以下有什么区别?

0 投票
2 回答
1058 浏览

perl - 为什么 perl “列表哈希”会这样做?

我有一个未填充的列表哈希。

我检查了最后添加到散列的块实际上是在输入时调用的。如果键不存在,它应该添加一个单例列表,或者如果存在则推到列表的后面(在右键下引用)。

我知道 GOTO 很丑陋,但我已将其注释掉,它没有任何效果。

问题是当 printhits 被调用时,什么都没有被打印出来,就好像散列中没有值一样。我也尝试了每个(%genomehits),没有骰子。

谢谢!

0 投票
35 回答
1717700 浏览

python - 如何通过引用传递变量?

Python 文档似乎不清楚参数是通过引用传递还是通过值传递,以下代码生成未更改的值 'Original'

我可以做些什么来通过实际引用传递变量吗?

0 投票
4 回答
913 浏览

c++ - 在 C++ 中通过引用传递临时对象时如何避免显式调用构造函数?

假设我有一堂课:

还有两个功能:

如果我这样调用 DoSomethingByVal:

编译器发现它应该创建一个临时 String 对象并调用 char* 构造函数。

但是,如果我尝试以相同的方式使用 DoSomethingByRef,我会收到“无法将参数从 'char *' 转换为 'String &'”错误。

相反,我必须显式创建一个实例:

这可能会让人讨厌。

有没有办法避免这种情况?

0 投票
2 回答
334 浏览

c# - 不同的参考问题使用一个简单的=

我对 by ref 问题有一个变体。我知道所有关于使用 ref 或我们的参数调用以及它如何影响变量及其值的知识。我对 DataTable 有这个问题,我想知道为什么数据表不同于简单的整数变量。

我有关于如何解决问题的物理答案,但我想知道它为什么会这样工作。

如果您使用简单的变量,它会达到我的预期

它在控制台中显示 1,5。

但是,如果您对 DataTable 做同样的事情,它会引用第一个数据表而不是新值:

控制台显示:StringCol StringCol123 Test Test

通过说 mVar4 = mVar3 它使 mVar4 成为对 mVar3 的引用。

这个问题的解决方法是说

所以我的问题是:是什么导致数据表的执行与简单的整数字段不同。为什么当我使用 mVar4 = mVar3 而不是 DataTable 的不同副本时它会创建一个引用?

0 投票
17 回答
147087 浏览

c++ - 在 C++ 中通过引用传递时参数的默认值

当我们通过引用传递参数时,是否可以为函数的参数提供默认值。在 C++ 中

例如,当我尝试声明如下函数时:

当我这样做时,它给出了一个错误:

错误 C2440:“默认参数”:无法从“const int”转换为“unsigned long &”非“const”的引用不能绑定到非左值

0 投票
3 回答
901 浏览

c++-cli - 如何通过 CLI 引用传递复选框值?

我有一个用 C++/CLI 编写的 GUI 应用程序,它有很多可配置的选项。我有一些重载函数可以从我的数据源中获取值,我想将我的选项连接到这些值。

所以这里有几个数据检索器:

我希望Checked按如下方式传入复选框的 getter/setter:

...但由于某种原因,我收到了一个奇怪的编译器错误,这表明该Checked值没有像我预期的那样被传递:

以前,这段代码传入了复选框并修改了值本身,但我很想打破我们的数据收集当前对 Windows 窗体的依赖。

那么我在这里错过了什么?

[编辑]为了避免混淆,我已经按照最初的方式填写了函数定义——我试图减少不相关信息的尝试失败了。

我相当确定CheckBox getter / setter 返回一个 bool

0 投票
5 回答
28565 浏览

c++ - c++ * vs & 在函数声明中

可能重复:
C++ 中指针变量和引用变量之间的区别

我什么时候应该将我的变量声明为指针与通过引用传递的对象?它们在汇编中编译成相同的东西(至少在运行时渐近)所以我什么时候应该使用哪个?

0 投票
2 回答
1308 浏览

.net - 如何通过引用传递函数以在 C++/CLI 中进行报告回调?

我有一些代码可以处理数据文件并在遇到问题时报告错误,但是我无法弄清楚如何为我的类提供回调函数。这是我想要实现的事情的一个简单示例:

...有一个问题:

所以我得到的印象是我误用或误解了一些东西。也许有更好的方法来实现这一目标?

0 投票
2 回答
1654 浏览

vb6 - Visual Basic 6.0 引用传递问题

在以下代码中,我收到编译时错误:

但是,如果我将 i,j 的声明更改为:

错误消失。为什么?