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

c++ - 为什么在传递 vl 或 vl1 时得到与输出相同的值 (0x7fff5fbff808)?地址应该不一样

输出:

0 投票
1 回答
64 浏览

ms-access - VBA:按值传递给属性调用

我有以下代码工作。

但是我有一堆这样的标签,那么我怎样才能让最后一行工作呢?

非常感谢任何帮助或建议!!!

0 投票
3 回答
650 浏览

c - C 代码:在递归调用中将表达式作为参数传递

我在练习一些 C 问题时遇到了一个递归函数以表达式作为参数调用自身的场景。

我的问题是在评估表达式时是否传递了参数(x * x,如按值调用)还是这是一个惰性评估,即直到使用时才评估。

下面是详细的问题

查找调用 Pow(5.0,12) 的结果的乘法数?

选项 5、6、8、12

0 投票
3 回答
149 浏览

c++ - Changing Array elements by call by value

I am passing array elements to a function. This function adds 5 to each element of the array. I am also passing an integer and adding 5 to it... Even though it is a 'call by value' function the value of the integer dosn't change in main() (which is expected) but the array elements do change...

I wan't to know how and why?

0 投票
6 回答
4227 浏览

java - 重新排列 ArrayList 的顺序

我想ArrayList通过遍历它并将每个元素复制到新列表中的特定位置来重新排列它。

在这种情况下,我想将一个元素移动到列表的末尾。例如,如果列表是 ABCDE 并且 j == B,那么新列表应该是 ACDEB。

这是我的代码:

现在我得到一个IndexOutOfBoundsException: Index: 0, Size: 0at tempSchedule.set

我想问题出在这条线上

还请解释如何制作深拷贝。

编辑:感谢所有答案。我通过简单地删除该项目并在最后添加它来运行它,就像建议的那样。

我想构建一个新列表的原因是因为我可能不得不在某些时候进行更复杂的重新排列。

0 投票
1 回答
747 浏览

javascript - TypeScript 引用调用混淆

伙计们,

在熟悉 TypeScript 的过程中,我遇到了让一个简单的 LinkedList 实现正常工作的严重问题。

这是源代码 - 我将在下面详细描述问题。

上面的代码使用泛型实现了一个简单的类型化 LinkedList,就像在其他 OO 语言中所做的那样。问题是 addElementFirst 完美地工作,但 addElementLast 惨败。

为什么会这样?我的强烈假设是作业

为局部变量赋值(而不是传递引用!),因此,随后对 addElementLast 中的数据结构所做的所有更改都是局部的,并且不对原始数据结构进行操作。生成的 JS 代码如下所示,并证实了这一假设:

从理论上讲,我担心我认为赋值语义与这里的 Java 有很大不同,在 Java 中模拟代码可以工作,因为所有赋值都只能使用引用进行。

有没有解决这个问题的简单概念方法?我可以强制底层 JavaScript 严格使用引用吗?

最好的问候, 埃利亚斯

0 投票
1 回答
767 浏览

parameter-passing - 按值调用、名称/引用、ML 中的需要

我正在准备期末考试,这里有一个练习题。

问题询问结果

在以下参数传递技术下:

  1. 按值调用
  2. 叫名字
  3. 需要时来电。

在我看来,按值调用的答案是 8。但是,我相信按名称调用的答案也是 8,但我希望它会有所不同。我认为是8的原因:

  • y := (!y)+1 将 y 取消引用为 1,加 1,然后将 y 设置为 2
  • 第 3 行中的 !y 用作 f 的参数,并且由于它正在被取消引用,因此它作为值而不是作为引用传递(这可能是我出错的地方?)
  • 函数调用返回 6,但没有设置 y,因为 y 是作为上一步中的值传入的
  • 将 6 添加到 y 的取消引用值,即 2。
  • 这返回 8

这是正确的答案吗,如果不是,有人可以指出我哪里出错了吗?另外,有人可以向我解释一下在这种情况下需要调用如何工作吗?

非常感谢。

0 投票
1 回答
832 浏览

c++ - 引用调用和值调用

我正在编写一个程序,让用户在变量中输入一个整数value,并调用两个备用函数,每个函数都将所选整数值增加三倍。该函数triple_by_value按值传递变量编号,将参数增加三倍并返回结果。

该函数triple_by_reference通过引用传递变量 number,并通过引用参数将 number 的原始值增加三倍。

似乎我遇到了一个问题,即函数triple_by_value不是,将值增加三倍,只是按原样打印。

任何帮助将非常感激。

0 投票
3 回答
365 浏览

python - 即使 id() 在调用和被调用函数中相同,python 整数参数值也不会改变

输出:

假设id()给出对象的内存位置。即使两者都保存在同一位置,如果 x 值在 中更改func(),则不会在外部影响。

0 投票
4 回答
1991 浏览

java - 为什么程序员说“按引用传递”真的是“按值传递引用”?为什么这很重要?

我知道 C 和 C++ 中按引用传递的整个概念,以及 Java 中仅按值传递的类似概念。但从某种角度来看,一切都是按价值传递的,不是吗?在 C 中,我们将变量的指针传递给函数。所以我们只是将引用的值传递给函数。这就是我们说 Java 不支持按引用传递的原因,因为我们只是将引用变量的值传递给函数。所以我们按值传递引用。虽然在 C++ 中有一种通过引用传递的方法,因为我们可以传递参数,并且函数将使用这种格式在相同的内存位置上工作

但是在 C 中通过指针传递引用只是通过值传递指针。

我知道这个问题可能看起来有点愚蠢,但我觉得我所拥有的整个概念存在一个巨大的漏洞。那么按引用调用的实际定义是什么,这只是在另一个上下文中按值调用的伪名称吗?