pass-by-reference相关内容

PHP 中的数组是作为值复制还是作为新变量的引用复制,以及何时传递给函数?

1) 当数组作为参数传递给方法或函数时,是按引用传递还是按值传递? 2) 给变量赋值时,新变量是对原数组的引用,还是新拷贝? 这样做怎么样: $a = array(1,2,3);$b = $a; $b 是对 $a 的引用吗? 解决方案 有关问题的第二部分,请参阅 手册的数组页面,其中说明(quoting) : 数组赋值总是涉及值复制.使用引用运算符通过引用复制数组. ..
发布时间:2021-11-18 01:09:45 PHP

执行 foreach 时更改数组中的值

示例: var arr = ["一","二","三"];arr.forEach(功能(部分){部分=“四";返回“四";})警报(arr); 数组仍然是它的原始值,有什么方法可以从迭代函数中写入数组元素吗? 解决方案 回调传递元素、索引和数组本身. arr.forEach(function(part, index, theArray) {theArray[index] = "你好世界 ..
发布时间:2021-11-18 01:07:42 前端开发

为什么我的列表中的所有值都相同?

在 java 中,我试图用一堆不同的对象填充一个列表.但实际情况是,每次我向列表中添加另一个对象时,列表中的所有对象都会变成相同的东西. 有问题的代码: 私有静态ArrayList甲板 = 新的 ArrayList();私有静态无效 setupDeck(){for(int i = 0; i 什么时候 deck.add(new Card(i,j)); 我的列表中已有的被调用对象正在变 ..
发布时间:2021-11-18 00:48:49 Java开发

仅将 ArrayList 作为值传递而不是引用

简单地说,我有一个带有 ArrayList 参数的方法.在该方法中,我修改 ArrayList 的内容仅用于与该方法返回的内容相关的目的.因此,我根本不希望作为参数传递的 ArrayList 受到影响(即不作为参考传递). 我尝试过的一切都没有达到预期的效果.我需要做什么才能仅在方法中使用 ArrayList 的副本,但不能更改实际变量? 解决方案 即使您有办法将数组列表作为副本传递 ..
发布时间:2021-11-17 23:21:17 Java开发

将参数作为 std::string 或 const std::string& 传递?

可能的重复: 在C++是按值传递还是按常量引用传递? 我在写文件系统时想到了这个. vectorgetFiles(字符串路径);向量getFiles(const string& path); 哪个更快?哪个更优雅? 显然 path 永远不会在 getFiles 方法中改变. 奖励:我使用的是 C++11.有没有办法通过移动语义来加速一切? 解决方案 在您的情况下,规 ..
发布时间:2021-11-17 05:52:37 C/C++开发

将参数作为 std::string 或 const std::string& 传递?

可能的重复: 在C++是按值传递还是按常量引用传递? 我在写文件系统时想到了这个. vectorgetFiles(字符串路径);向量getFiles(const string& path); 哪个更快?哪个更优雅? 显然 path 永远不会在 getFiles 方法中改变. 奖励:我使用的是 C++11.有没有办法通过移动语义来加速一切? 解决方案 在您的情况下,规 ..
发布时间:2021-11-17 05:51:54 C/C++开发

主流编译器是否将按引用传递的基本类型转换为按复制传递?

通过引用传递对象是一种更简单、更快、更安全的传递地址的方法.但对于大多数编译器来说,都是一样的:引用实际上是指针. 那么像 int 这样的基本类型呢?将地址传递给 int 并在函数内部使用它会比通过复制传递它慢,因为指针需要在使用前取消引用. 现代编译器如何处理这个? int foo(const int & i){cout ..
发布时间:2021-11-17 05:41:34 C/C++开发

如何在php中通过引用传递无限参数

我有一个 php 函数,它有无限数量的参数,我从 func_get_args() 得到.我有一些带参数的操作(更改字符串或做某事),我希望这就像通过引用传递参数一样.有可能吗? 示例: $test = 'foo';$test2 = '酒吧';功能测试(){$args = func_get_args();foreach($args 作为 $arg)$arg .= 'baz';}测试($tes ..
发布时间:2021-11-17 05:15:25 PHP

在 R 函数中修改变量

如何修改传递给 R 中函数的参数?在 C++ 中,这将通过引用传递. g=4abc 我希望将 g 设置为 5. 解决方案 @Dason 展示了一些方法,但实际上 - 你不应该! R 的整个范式是“按值传递".@Rory 刚刚发布了处理它的正常方法 - 只需返回修改后的值... 环境通常是 R 中唯一可以通过引用传递的对象. 但是最近 R 中添加了称为引用类的新对象( ..
发布时间:2021-11-17 05:10:43 其他开发

是否可以将属性作为“out"传递?或“参考"参数?

如果不能,我可以将属性作为“out"或“ref"参数传递,那为什么不呢? 例如 Person p = new Person(); ... public void Test(out p.Name); 解决方案 对于简短的回答深表歉意,但不,C# 语言规范不允许这样做. 请参阅此答案 到另一个问题,看看当你尝试时会发生什么.它还说明了为什么你不应该将财产仅仅作为一个公共领域来绕过 ..
发布时间:2021-11-17 05:03:41 C#/.NET

修改自执行函数中的参数

我希望能够修改传递给自执行函数的参数. 这是一些示例代码: var test = 'start';(函数 (t) {t = 'end'} )(test);警报(测试)//警报'测试' 还有这里有一个小提琴.变量 test 没有改变.我该如何更改它,如通过引用传递? 解决方案 传入一个object,它是pass-by-reference: var test = {消息:'开始'} ..

如何使用参数传递对函数的引用?

可能的重复: 我如何预设JavaScript 函数调用中的参数?(部分函数应用) 我需要能够使用一组给定的参数传递对函数的引用. 下面是一个不带参数传递引用的例子: var f = function () {//这里有一些逻辑...};无功 fr = f;//这里我传递了一个对函数'f'的引用,没有参数fr();//调用'f'函数,不带参数 现在我需要做的是传递相同的 f 函数, ..
发布时间:2021-11-10 23:28:51 前端开发

将对象从 Activity 传递到 Fragment 是通过引用传递

当我们使用 Serializable 和 Parcelable 在 activities 之间传递对象时,然后一个 对象的副本/值发送到接收 activity(典型的按值传递行为). 但是为什么当我们在 Bundle 中将对象作为 Parcelable 传递给 Fragments 时,由于某种原因它们被发送为 对象的引用而不是对象的副本/值(通过引用行为).我还没有检查过Serializab ..

在 Java 中使用数组和引用类型别名

关于此,SO 上有许多类似的问题,但我无法找到明确列出别名差异的答案,所以我在这里提问. 我知道一个简单的原始赋值语句复制值: int x = 1;int y = x;x = 2;标准输出.print(x);//打印 2标准输出.print(y);//打印 1 然后我被告知在赋值语句中数组是“别名"的.所以: int[] x = {1, 2, 3, 4, 5};int[] y = x; ..

一些更新从方法中被丢弃

我有一组从一个 BaseObject 继承的对象,这些对象具有一些全局原始属性(索引等).现在,我有两个对象,其中一个(目标一个)仅具有基本属性的值,另一个(源,它是一组对象中的一个)具有所有其他属性的值(从第三个派对应用),但基础的. 我试图将所有源对象的属性复制到目标对象,但保留目标的基本属性值.换句话说——我试图在不删除任何东西的情况下使两个对象的属性值相等……目标 = 源;只会删除目 ..
发布时间:2021-06-14 19:54:04 C#/.NET

已弃用:调用时传递引用已被弃用

由于此错误/警告,php 5.3.5 中 settype() 的最佳替代品是什么 已弃用:通话时间不推荐使用传递引用在C:\xampp\htdocs\MyWebInterface\includes\payroll_cutoff.inc.php在线 217 解决方案 settype() 尚未弃用.在调用时按引用传递已被弃用.您可能只想删除 settype() 调用的第一个参数前面的与号 ..
发布时间:2021-06-14 19:53:41 PHP

对象引用的 ArrayList

有一个用户定义的类,像这样: class Foo{公共 int 假人;公共 Foo(int dummy){this.dummy = dummy;}} 然后有这样的事情: ArrayList dummyfoo = new ArrayList();Foo a = new Foo(1);dummyfoo.add(a);foreach (Foo x in dummyfoo)x.dummy++; a ..
发布时间:2021-06-14 19:53:38 C#/.NET

是否存在任何语言中的 REAL 引用传递?

据我所知,c 中没有按引用传递,而 Java 基本上按值传递所有内容,有数十篇堆栈溢出帖子对此进行了讨论. 现在我想知道是否有任何通过引用进行 REAL 调用的示例?因为在函数调用过程中,所有参数(包括指针或可变对象标识符)的值总是被复制到被调用者框架中的局部变量中,从这个意义上说,一切都是按值传递的. 解决方案 当然有.例如,C♯ 有传递引用.为了发生引用传递,声明站点的参数列表中 ..
发布时间:2021-06-14 19:53:36 其他开发