pass-by-reference相关内容

从 Perl 子例程返回整个数组效率低下吗?

我经常在 Perl 中有一个子程序,用一些信息填充数组.由于我也习惯用 C++ 进行 hack,我发现自己经常在 Perl 中这样做,使用引用: 我的@array;getInfo(\@array);子获取信息{我的 ($arrayRef) = @_;推@$arrayRef,“奥巴马";# ...} 而不是更直接的版本: 我的@array = getInfo();子获取信息{我的@array; ..
发布时间:2022-01-05 12:04:17 其他开发

对象引用的变量重新分配使其他对象保持不变(无“传递"分配)

我有一个要替换的对象. var obj1 = { x: "a" };var ref = obj1;var obj2 = { y: "b" };对象 1 = 对象 2; 这导致 ref 等效于 { x: "a" },但我希望它也被更改为指向 obj2 得到 ref 等价于 { y: "b" }. 解决方案 不可能.JS 通过引用的副本传递对象,因此在步骤 var ref = obj1 中 ..
发布时间:2022-01-05 11:59:41 前端开发

引用对象的 STL 容器

我知道 STL 容器复制对象.所以说我有一个 list升; 每次我做的时候 SampleClass t(...);l.push_back(t); 将制作 t 的副本.如果 SampleClass 很大,那么它会非常昂贵. 但是如果我将 l 声明为引用的容器, list升; 当我这样做 l.push_back(t); 它会避免复制对象吗? 解决方案 遗憾的是不,它不会编 ..
发布时间:2022-01-05 11:48:38 C/C++开发

为什么在引用的值上调用函数(例如 strlen、count 等)这么慢?

我刚刚在 PHP 中发现了一些非常奇怪的东西. 如果我通过引用将一个变量传递给一个函数,然后在它上面调用一个函数,它难以置信地慢. 如果循环内部函数调用并且变量很大,它可能比按值传递变量慢许多数量级. 示例: 这运行得很快,但是如果您将 function CalledFunc(&$aData) 更改为 function CalledFunc($aData),您将看到类似的减 ..
发布时间:2022-01-05 11:47:06 PHP

在 C# 中通过引用传递属性

我正在尝试执行以下操作: GetString(输入字符串,参考 Client.WorkPhone)private void GetString(string inValue, ref string outValue){if (!string.IsNullOrEmpty(inValue)){出价值 = 入价值;}} 这给了我一个编译错误.我认为我想要达到的目标非常清楚.基本上我希望 GetStr ..
发布时间:2022-01-02 18:05:30 C#/.NET

通过函数传递链表头作为C中的地址

我有一个关于在 C 中通过函数传递链表头部的问题.所以代码是这样的: #include //定义节点的结构结构节点{整数数据;结构节点*下一个;};无效插入(结构节点* rec,int x){struct node* temp = (struct node*)malloc(sizeof(struct node));温度->数据= x;temp->next = NULL;rec = 温度;//he ..
发布时间:2022-01-01 18:42:55 其他开发

C 中的输出参数

void swap(int &first, int &second){int temp = 第一;第一个 = 第二个;第二 = 温度;} int a=3,b=2;交换(a,b); 编译器抱怨 void swap(int &first, int &second) 有语法错误.为什么?C 不支持引用吗? 解决方案 C 不支持通过引用传递.因此,您需要使用指针来完成您想要实现的目标: vo ..
发布时间:2021-12-29 20:10:04 其他开发

IList 是按值传递的吗?

将值类型参数传递给 c# 中的函数是按值传递的,除非您在参数上使用 ref 或 out 关键字.但这是否也适用于引用类型? 具体来说,我有一个接受 IList 的函数.传递给我的函数的列表是否是列表的副本及其包含的对象的副本?或者对列表的修改也适用于调用者?如果是这样 - 有没有一种聪明的方法可以传递副本? public void SomeFunction(){IListlist = ne ..
发布时间:2021-12-29 20:08:21 C#/.NET

“var"和“var"有什么区别?和“出"参数?

用var 声明的参数和用out 声明的参数有什么区别?编译器如何区别对待它们(例如,通过生成不同的代码,或通过更改它发出的诊断信息)?还是不同的修饰符仅允许程序员记录参数的预期用途?参数的类型对此事有什么影响? 解决方案 var 参数将通过引用传递,仅此而已. out 参数也通过引用传递,但假定输入值无关紧要.对于托管类型(字符串、接口等),编译器将通过在例程开始之前清除变量来强制执 ..
发布时间:2021-12-29 20:03:39 其他开发

正确使用 Eigen::Ref>班级

Eigen 引入了 Ref 类来编写带有 Eigen 对象作为参数的函数,而不需要使用不必要的临时变量,当不需要编写模板函数时.您可以在此处阅读有关此内容的信息. 在 Internet 上进一步搜索时,我发现使用 Ref 类声明了几种不同的参数.在 Eigen 文档中,他们使用 const Eigen::Ref& 作为第一个示例中的只读参数.在第二个例子中,Eigen::Ref 被引入用 ..
发布时间:2021-12-29 19:49:40 C/C++开发

“ref"有什么用?对于 C# 中的引用类型变量?

我明白,如果我传递一个值类型(int、struct 等)作为参数(没有 ref 关键字),该变量的副本将传递给该方法,但如果我使用 ref 关键字,则会传递对该变量的引用,而不是新的引用. 但是对于引用类型,如类,即使没有 ref 关键字,引用也会传递给方法,而不是副本.那么 ref 关键字和引用类型有什么用? 举个例子: var x = new Foo(); 以下有什么区别? ..
发布时间:2021-12-29 19:32:25 C#/.NET

PDO 通过引用通知?

这个: $stmt = $dbh->prepare("SELECT thing FROM table WHERE color = :color");$stmt->bindParam(':color', $someClass->getColor());$stmt->execute(); 产生这个: 运行时通知 只应传递变量参考 虽然它仍然执行. 这个: $stmt = $d ..
发布时间:2021-12-26 20:19:21 PHP

golang 和指针接收器中的自定义错误

通过网络和 stackoverflow 阅读有关值接收器与指针接收器的信息,我理解基本规则是:如果您不打算修改接收器,并且接收器相对较小,则不需要指针. 然后,阅读有关实现 error 接口的信息(例如 https://blog.golang.org/error-handling-and-go),我看到 Error() 函数的例子都使用指针接收器. 然而,我们没有修改接收器,而且结构非 ..
发布时间:2021-12-26 13:01:54 其他开发

forEach() 是否通过引用绑定?

var arr = ['Foo'];arr.forEach(功能(项目){控制台日志(项目);item = 'Lorem';控制台.dir(arr[0]);});for(arr中的var项目){arr[item] = 'Ipsum';控制台.dir(arr[0]);} 如上面的代码所示,我注意到更改传递给 forEach() 回调的项的值不会导致迭代对象发生更改. 使用 for...in ..
发布时间:2021-12-26 12:23:02 前端开发

c# - 我应该使用“ref"吗?通过引用方法传递集合(例如列表)?

我应该使用“ref"通过引用方法来传递列表变量吗? 答案是不需要“ref"(因为列表将是参考变量),但是为了便于阅读,将“ref"放入? 解决方案 不,不要使用引用,除非您想更改变量引用的列表.如果您只想访问列表,请在没有 ref 的情况下进行. 如果你做一个参数引用,你是说调用者应该期望他们传入的参数可以分配给另一个对象.如果你不这样做,那么它就没有传达正确的信息.您应该假设 ..
发布时间:2021-12-23 09:15:27 C#/.NET

当它绑定到调用函数中的 const 引用时,它的返回值的生命周期如何扩展到调用函数的范围?

“如果从函数返回一个值(不是引用),然后将其绑定到调用函数中的 const 引用,则其生命周期将扩展到调用函数的范围." 所以:案例 A const BoundingBox Player::GetBoundingBox(void){返回 BoundingBox( &GetBoundingSphere() );} 从函数 GetBoundingBox() 返回 const Boundin ..
发布时间:2021-12-21 10:13:13 C/C++开发

了解 C# 事件对发送者对象的使用

我对 C# 作为一种语言相当陌生(来自 C++ 背景),我目前正在编写一个使用事件驱动 API 的应用程序. 这主要包括注册事件/响应处理程序和启动事件监视器,然后处理这些异步事件/响应. 我在理解发件人对象时遇到了一些麻烦. 我想使用它的目的是在发出请求(或设置监视器)时将句柄传递给我具有各种结构和数据的类对象.然后在收到响应/引发事件时,我可以获取发送者对象,将其转换回预期的 ..
发布时间:2021-12-19 22:59:30 C#/.NET

Matlab 矩阵是按值传递还是按引用传递?

我是 Matlab 的新手.你可能会觉得这个问题很傻,但我真的很想知道下面的语句是传值操作还是传引用操作. I = imread('logo.png');binaryImage = im2bw(I, 0.4);Itemp = binaryImage; Itemp 是一个新的矩阵,其值是从 binaryImage 复制的,还是只是一个指向 binaryImage 的指针? 解决方案 按引用传 ..
发布时间:2021-12-19 08:19:05 其他开发