问题标签 [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 回答
133 浏览

scala - 在 Scala 中,什么时候是使用惰性求值参数而不是使用函数作为参数的好时机?

得到这个结果:

似乎lazyHello 和anoyHello 执行相同。

那么,在 Scala 中,什么时候是使用惰性求值参数而不是使用函数作为参数的好时机呢?

0 投票
1 回答
2727 浏览

programming-languages - 按名称/引用/值调用

有人可以通过名称、参考和价值来深入解释调用,并将它们相互比较吗?

简单的例子也很棒。我非常专注于按名称调用,感觉与按引用调用非常相似。

0 投票
0 回答
89 浏览

python - “按引用调用”和“按值调用,其中值是指针”有什么区别?

我阅读了这篇关于 Python 变量绑定的文章。它因教授错误的假设而受到批评。它指出 Python 既不是“按引用调用”也不是“按值调用”。

有人在评论中说,Python 实际上遵循了一个明确的“按值调用”模型,其中“值”是一个对象指针。我不明白这和引用调用之间的区别。

不是关于“按值”和“按引用”之间的区别,而是关于“按值(对象指针作为值)”和“按引用”之间的区别。

假设您通过引用传递了一个变量。这个引用不是一个正在传递的值,指向一个目标吗?为什么不一样?

我认为我知道什么在 Python 中有效,什么无效,但这在某种程度上对我来说是一个不清楚的区别。

谢谢!

0 投票
2 回答
595 浏览

java - 重新审视按值调用与按引用调用

我先说。我知道标题怀疑我在问一个在这里和互联网上多次回答的问题。我确实进行了研究,但我只是找不到令人满意的答案。

我的问题最终归结为这个。为什么 Java 按值调用和 C++ 按引用调用(使用指针时)?

在传递引用时考虑在 Java 中调用方法,在传递指针时考虑在 c++ 中调用。最后,在这两种情况下,我都可以进行调用者可见的更改。同样在这两种情况下,我都将对象的地址传递给函数。实际上,当传递指针时,我也在复制,即在 c++ 中按值进行调用,不是吗?

您可以通过运行以下代码来简单地验证这种情况:

这将打印两次相同的地址。

对我来说,仅仅通过引用来证明调用的合理性是不够的,你可以使用它来执行交换功能。我想知道按引用调用的核心是什么。

先感谢您。

0 投票
5 回答
1894 浏览

c++ - 如何将字符串文字传递给用 C++ 处理的函数?

考虑以下代码:

现在考虑以下两种情况:

1) 函数passStringObject()被调用。

2)passStringLiteral()调用函数。

在情况 1 中,我会假设 - 当在其中调用函数时consumeString-passStringObject变量stringObject只是传递给函数consumeString并且(因为按值调用)调用字符串类的复制构造函数,以便参数 str 是stringObject传递给函数的变量consumeString

但是在第 2 种情况下consumeString调用函数时会发生什么?在调用复制构造函数并将“隐藏”变量的值复制到参数之前,是否隐式调用了字符串类的(重载)赋值运算符(可能将文字分配给后台的某个“隐藏”变量?)str

0 投票
2 回答
280 浏览

java - Java 按值调用

我意识到这是一个常见问题,但在这里..

我试图写这个来弄清楚Java如何处理参数传递等等..

在这里,我可以更改传递给方法的对象内的基元的值,但不能更改传递给方法的基元的值。有什么原因吗。

0 投票
1 回答
90 浏览

c - 为什么宏函数不按值调用?

印刷:a=4,b=1

在输出中,a和b已经交换;为什么宏不按值调用?请帮助我解释结果。

0 投票
4 回答
260 浏览

c - 传递地址,但它的工作方式类似于 C 中的按值调用?

您好,我是 C 编程语言的初学者。最近我读到了按值调用和按地址调用。我了解到,在被调用函数中的地址变化反映了被调用者。但是,以下代码不能那样工作。

当我传递地址时,为什么被调用函数所做的更改不反映调用者?

0 投票
3 回答
453 浏览

perl - 如果 perl 是按引用调用的,为什么会发生这种情况?

我读过 perl 在执行子程序时使用引用调用。我编写了一段简单的代码来检查这个属性,但它的行为就像 perl 是按值调用的:

这会产生以下输出:

如果以引用调用的方式处理参数,x 不应该等于 x1 并且 y 不应该等于 y1 吗?

0 投票
4 回答
210 浏览

java - 当我在java中创建一个对象时,jvm到底发生了什么?

据我了解,如果我在写

该语句将创建一个a3在 jvm 堆栈中命名的句柄,其所有属性都在 JVM 堆中。如果这是正确的,我想知道按值调用是如何工作的。所以,如果我创建一个方法checkMethod(Car c)并通过说checkMethod(a3); 假设我们的汽车是

checkMethod我尝试访问 ausing a3.a = 5;时,我更改了它的值,a3.a 它将在调用类中显示给我,并且它指向 jvm 在堆中创建的相同字段。

但是当我a3= null;在调用方法中执行并再次返回我调用的方法 checkMethod(a3)并尝试查看该对象时,它不为空吗?为什么它的行为与对象的属性不同的是???