问题标签 [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 投票
1 回答
1358 浏览

java - 我如何将 EntityManager 传递给@PostUpdate

我想保存更改的历史记录,所以在@PostUpdate 我想创建另一个实体的新实例并保存它,我如何将 EntityManager 传递给该方法?

0 投票
7 回答
48024 浏览

c++ - 通过引用传递 C++ 迭代器有什么问题?

我用这样的原型编写了一些函数:

这个想法是调用者将提供一系列字符,并且该函数会将字符解释为整数值并返回它,begin在最后使用的字符之后留下一个。例如:

这将i设置为 123 并p“指向”之前的空间foo

从那以后我被告知(没有解释)通过引用传递迭代器是不好的形式。是不是形式不好?如果是这样,为什么?

0 投票
2 回答
2376 浏览

c++ - 如何通过引用传递 Generic::List?

为了将一些非托管代码包装在托管 .dll 中,我试图将 aGeneric::List数据点转换为std::vector. 这是我正在尝试做的一个片段:

编译这个给了我:

错误 C3699:“&”:不能在类型“const System::Collections::Generic::List”上使用此间接

我可能在这里错过了一些基本的东西(我对 .net 的做事方式相对较新),但这对我来说似乎是合理有效的代码..?

[编辑]我已经尝试了 Andy 和 Dario 的建议并且它们有效,但是我如何访问输入列表的成员?我尝试了各种引用组合,但似乎没有任何编译:

...都给我:

错误 C2662:“System::Collections::Generic::List::Count::get”:无法将“this”指针从“const System::Collections::Generic::List”转换为“System::Collections::通用::列表 %'

...那么您如何访问引用/指针?

0 投票
3 回答
1704 浏览

php - php5中是否需要通过引用传递变量?

PHP5 使用“写入时复制”并通过引用传递导致性能损失大于增益,为什么我应该使用传递引用?除了会返回多个值的回调函数或您希望在以后不调用 set 函数的情况下更改属性的类(我知道这是不好的做法)之外,我还缺少它的用途吗?

0 投票
6 回答
3702 浏览

python - 如何在 Python 中将大量变量传入和传出函数?

我做科学编程,经常想给用户显示提示和变量对,让他们编辑变量,然后用新变量进行计算。我经常这样做,所以我编写了一个 wxPython 类来将此代码移出主程序。您为每个变量设置一个列表,其中包含变量的类型(字符串、浮点数、整数)、提示符和变量的当前值。然后将所有这些列表放在一个大列表中,我的实用程序会创建一个格式整齐的 wxPython 面板,其中包含提示和可以编辑的当前值。

当我开始时,我只有几个变量,所以我会写出每个变量。

现在我想将这个例程用于很多变量(10-30),这种方法正在崩溃。我可以使用 list.append() 语句在多行上创建函数的输入列表。但是,当代码从函数返回时,我得到了这个需要解压缩到正确变量中的巨大列表。这很难管理,看起来很容易让输入列表和输出列表不同步。更糟糕的是,它看起来很笨拙。

将大量变量传递给带有额外信息的 Python 函数以便可以编辑它们,然后取回变量以便我可以在程序的其余部分中使用它们的最佳方法是什么?

如果我可以通过引用将变量传递给函数,那么用户可以更改或不更改它们,一旦程序从函数返回,我将使用这些值。我只需要在多行上构建输入列表,并且输入列表不会与输出列表不同步。但是 Python 不允许这样做。

我应该将大列表分解成较小的列表,然后组合成大列表以传入和传出函数吗?或者这只是增加了更多出错的地方?

0 投票
8 回答
60174 浏览

java - 将值放入 HashMap 后更改值会更改 HashMap 中的内容?

如果我创建一个新的 HashMap 和一个新的 List,然后使用任意键将 List 放在 Hashmap 中,然后再调用List.clear()它会影响我在 HashMap 中放置的内容吗?

这里更深层次的问题是:当我向 HashMap 添加内容时,是复制并放置了新对象还是放置了对原始对象的引用?

谢谢!

0 投票
4 回答
5159 浏览

java - JNA Passing Structure By Reference Help

I'm trying to use JNA to talk over a USB device plugged into the computer. Using Java and a .dll that was provided to me. I am having trouble with the Write function:

C code:

Java Equivalent:

I have confirmed that I can open and close the device. The close requires the NativeLong handle, so i am assuming that the CANMsg msg is the issue here. I have also confirmed that the device works when tested with C only code.

I have read the the JNA documentation thoroughly... I think. Any pointers. Thanks all.

0 投票
4 回答
175 浏览

function - PHP 和 C++ 是我们需要注意的仅有的两个地方吗?看起来传递值确实是传递引用?

PHP 和 C++ 是我们在将简单数据类型变量作为函数参数传递并且值可以更改时唯一需要注意的两个地方吗?

第三行,echo $count 显示 2 以外的内容。我只知道 PHP 和 C++ 会在哪里发生。还有其他地方可以发生吗?

更新:也就是说,看起来像“按值传递”实际上是“按引用传递”。如果它在 Java、Perl、PHP、Python 和 Ruby 中传递对象,它会自动通过引用传递,并且可以更改对象的实例变量的值。那么传入非对象呢?

0 投票
1 回答
824 浏览

ado.net - F#:如何在参数上声明和使用 ByRef 语义?

我正在用输入/输出参数包装一些 SQL 存储过程。这当然意味着我必须做一些丑陋的事情,比如将我的参数声明为引用并使用可变对象。

我将如何在 F# 中执行此操作?

0 投票
3 回答
3113 浏览

f# - F#:经典的swap函数怎么写?

在 C# 中,经典的交换函数是:

我将如何用 F# 编写它?

(注意,我不想要功能等价物。我实际上需要通过引用语义传递。)