问题标签 [call-by-value]

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

c# - UML DataType 是否像 C# 结构一样按值传递

我有一个关于 UML 数据类型的问题。

UML 上层结构说:

数据类型是其实例仅由其值标识的类型。

如果我理解正确,这意味着通过查看所有属性的值来检查相等性。

这是否也意味着 DataTypes 总是像 C# 结构一样被复制?

它们是否按值传递给方法,如果我将 DataType 分配给新变量,这是否会复制?(例如在阿尔夫)

我在互联网上找不到这个问题的答案。

0 投票
7 回答
924 浏览

c++ - 为什么在 C++ 中使用按值调用?

当使用按引用调用更有效时,将参数作为按值调用的目的是什么?(对于非原始数据类型。)

另外,如果要将 const 标记添加到按引用调用的参数中,这样它们就不会被修改怎么办?

是否存在使用按值调用而不是按引用调用的情况?

0 投票
2 回答
1822 浏览

haskell - lambda演算的按值调用和按名称调用解释器之间的区别

在另一个问题中,Bob为无类型 lambda 演算提供了以下解释器。

Ivan Zakharyaschev 说这个解释器是按值调用的,因为F f -> f (interpret env e2). 名称调用解释器的实现与上面介绍的解释器有何不同?

Plotkin在 1970 年代研究了用于评估 lambda 演算的名称调用和值调用策略。

0 投票
1 回答
47 浏览

c++ - 我可以按值(复制)将对象从一个 std::vector 插入到另一个吗?

(我意识到这是我的程序中的一个复制粘贴错误。但是为什么我得到这个错误消息的原因对其他人来说仍然很有趣,因此,我更新了这个问题。)

我有以下代码片段,它将一个向量的元素复制到另一个向量中。也许这可以更优雅地解决,但这不是这里的问题(当然,除非我正在尝试做的事情绝对愚蠢。)

向量this->domains是具有定义的成员:

编译器告诉我:错误:

当我想通过引用处理对象时,我基本上理解了这个问题,但在这种情况下,我想将dBY VALUE的元素插入到domains. 我如何告诉编译器他应该只制作副本而不是传递引用?

0 投票
5 回答
3059 浏览

c++ - const 引用调用是否会在应用于原始类型时提高性能?

关于对象(尤其是字符串),按引用调用比按值调用更快,因为函数调用不需要创建原始对象的副本。使用 const,还可以确保引用不被滥用。

我的问题是,如果使用基本类型(如 bool、int 或 double),const 引用调用是否也更快。

我的怀疑是,只要原始类型的字节大小超过地址值的大小,就使用引用调用是有利的。即使差异很小,我也想利用这个优势,因为我经常调用其​​中一些函数。

附加问题:内联对我的问题的答案有影响吗?

0 投票
4 回答
135 浏览

java - 按引用调用或按值调用

答案是A

我很难理解这段代码的结果。谁能向我解释结果?

0 投票
0 回答
46 浏览

java - 传入函数时Java复制整个对象?

我的问题很像“是java传递值还是传递引用”之间的战斗。但是我仍然无法理解当我在函数中传递一个对象时会发生什么。例如,假设我有一个巨大的 HashMap,我希望每个对象和每个类都可以访问它。所以我将它作为参数传递给所有需要它的函数。更具体地说,我在主函数中创建了这个 HashMap,然后我有一些需要它的对象。

但我不明白它是否复制它。每次调用函数时都复制它是没有意义的,因为那是浪费时间。如果它只是将对象作为参考传递,那就太好了。谢谢你。

正如我所说,没有一个已回答的帖子明确说明是否将整个对象逐位复制到函数中,这是我的主要问题。所以我看不出与其他问题有任何相似之处。

0 投票
1 回答
240 浏览

c++ - 按名称调用/按值调用

我试图在这里理解这段代码:

mymult = 11 和 mymult1 = 24。我知道 '#define 本质上是通过名称调用而不是值调用来工作的。但是,我无法理解为什么它返回的值是 11... 而不是 24。这是什么原因造成的?

0 投票
0 回答
39 浏览

python - 为什么调用中的 def processes *args 总是一个元组?

这是我的代码。我正在观察def函数中 args 的数据类型。

2, 3函数的实际参数(参数)作为*arg形式参数传递时;因此,参数是使用按值调用传递的(其中值始终是对象引用,而不是对象的值)。

*args调用中将我序列中的每个元素(无论是元组还是列表)扩展为单独的参数。然后将这些单独的参数再次捕获到*args参数中,为什么它总是 a tuple

0 投票
1 回答
3344 浏览

abap - EXPORTING 方法的参数如何通过值传递?

我想知道 ABAP 方法调用的按值调用 EXPORTING 参数的定义。

SAP Help Portal 声明 EXPORTING 参数可以按值调用(和按引用调用)定义。它没有给出如何处理此参数类型的精确定义。相反,它指出

有关相关 ABAP 语句的详细信息,请参阅 ABAP 编辑器中相应的关键字文档。

现在,SAP 编辑器的 ABAP 关键字文档没有提到 EXPORTING 的传递值。(它确实提到了 IMPORTING 和 CHANGING 的传递值)。

我可以猜到按值传递导出的含义。但我想阅读定义。从 FORM/PERFORM 中,我知道细节可能很微妙。你能指出我对这个案例的官方描述吗?