问题标签 [return-by-reference]

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 投票
4 回答
282 浏览

php - PHP 返回引用

当您想使用函数查找应该将引用绑定到哪个变量时,按引用返回很有用。不要使用按引用返回来提高性能。引擎会自行自动优化。仅在您有正当的技术理由时才返回参考资料。

粗体字是什么意思?

它是指类似的东西吗

我没有绑定到任何变量?

0 投票
4 回答
1175 浏览

php - PHP 5.x 中的引用传递

我正在学习 Zend PHP5 认证,一切看起来都不错,但我找不到传递或返回变量的真实示例。

如果有人有什么时候使用这个的例子,那就太好了?

0 投票
9 回答
17496 浏览

c++ - C++:通过引用和复制构造函数返回

C++ 中的引用让我感到困惑。:)

基本思想是我试图从函数中返回一个对象。我想在不返回指针的情况下执行此操作(因为那时我必须手动操作delete它),并且如果可能的话,不调用复制构造函数(为了提高效率,自然添加:并且还因为我想知道我是否不能避免编写复制构造函数)。

因此,总而言之,这是我发现的执行此操作的选项:

  • 函数返回类型可以是类本身 ( MyClass fun() { ... }) 或对类的引用 ( MyClass& fun() { ... })。
  • 该函数既可以在 return ( return MyClass(a,b,c);) 行构造变量,也可以返回现有变量 ( MyClass x(a,b,c); return x;)。
  • 接收变量的代码也可以有任一类型的变量:(MyClass x = fun();MyClass& x = fun();
  • 接收变量的代码可以动态创建一个新变量 ( MyClass x = fun();) 或将其分配给现有变量 ( MyClass x; x = fun();)

以及对此的一些想法:

  • 拥有返回类型似乎是个坏主意,MyClass&因为这总是会导致变量在返回之前被销毁。
  • 复制构造函数似乎只在我返回现有变量时参与。当返回一个在返回行中构造的变量时,它永远不会被调用。
  • 当我将结果分配给现有变量时,析构函数也总是在返回值之前启动。此外,没有调用复制构造函数,但目标变量确实接收从函数返回的对象的成员值。

这些结果是如此不一致,以至于我感到完全困惑。那么,这里到底发生了什么?我应该如何正确构造并从函数返回对象?

0 投票
3 回答
24078 浏览

c++ - 前缀/后缀增量运算符

我想确保我正确理解按值传递与按引用传递。特别是,我正在查看++对象的增量运算符的前缀/后缀版本。

假设我们有以下类X

首先,我是否正确实现了前缀/后缀增量运算符?

其次,与前缀运算符相比,后缀运算符的内存效率如何?X具体来说,在使用每个版本的算子时,会创建多少个对象副本?

对按引用返回与按值返回究竟发生了什么的解释可能有助于我理解。


编辑:例如,使用以下代码...

...现在 a 和 b 是别名吗?

0 投票
5 回答
812 浏览

c++ - 从 C++ 方法返回引用

亲爱的朋友们,我担心我是否在 C++ 中错误地使用了引用在以下方法中 GCC 抱怨警告“对局部变量'me'的引用返回”

但是,通过以下更改,警告会消失:

前一种方法(返回 'ref' 变量)是否正确\可接受?

0 投票
7 回答
5559 浏览

scheme - 方案传递引用

如何在方案中通过引用传递变量?

我想要的功能示例:

另外,有没有办法通过引用返回?

0 投票
6 回答
405 浏览

c++ - 使用 const / nonconst 版本在 C++ 中的模板类上重载 [] 运算符

哇,那是一个很长的标题。

这是我的问题。我在 C++ 中有一个模板类,我正在重载 [] 运算符。我有一个 const 和一个非常量版本,非常量版本通过引用返回,以便类中的项目可以这样更改:

这一切都有效,直到我使用布尔值作为模板参数。这是显示错误的完整示例:

该错误是编译器错误,消息是:

我已经阅读并发现 STL 使用了一些临时数据类型,但我不明白为什么它适用于除 bool 之外的所有内容。

对此的任何帮助将不胜感激。

0 投票
2 回答
136 浏览

c++ - 初始化引用时避免按值复制

我有一个函数接口:

这个想法是像这样检索它:

但是,我偶尔会犯错误并写道:

按值复制,这​​是我想要避免的。但是,当我犯这样的错误时,编译器不会发出警告,因为它的语法是合法的。我想为此触发编译时错误,请问我的替代方案是什么?

我考虑过声明一个复制构造函数但没有在任何地方定义它,如果使用它会导致链接时错误,但是我将无法在任何情况下使用复制构造函数,这是不可取的

0 投票
3 回答
6383 浏览

vb.net - VB.NET,是从函数引用返回的对象

这应该是一个相当普遍的问题,但我在任何地方都没有找到直接的答案。

如果我在 VB.NET 的函数中实例化一个对象并返回它,它是通过引用还是按值返回它。IE - 如果我写这样的东西,我是否应该担心性能:

如果我从其他地方调用这个函数,它会在 ret_obj 中实例化对象,然后创建一个深层副本以将副本传回给调用者,还是只是传回一个引用?

0 投票
1 回答
201 浏览

objective-c - 释放引用返回的 NSString 会导致崩溃

下面的方法接受一个双指针NSString并用一个值填充它,如下所示:

现在它被这样调用:

谁能解释它为什么会崩溃?