问题标签 [parameter-passing]

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 投票
23 回答
1032532 浏览

python - **(双星/星号)和*(星号/星号)对参数有什么作用?

在以下方法定义中,*and**有什么作用param2

0 投票
92 回答
2379480 浏览

java - Java 是“按引用传递”还是“按值传递”?

我一直认为 Java 使用pass-by-reference

但是,我看到一篇博客文章声称 Java 使用pass-by-value

我不认为我理解他们所做的区分。

解释是什么?

0 投票
4 回答
8383 浏览

c# - 如何从方法返回匿名类型?

我有一个想要从多个地方调用的 Linq 查询:

如何创建一个方法,将这段代码放入其中,然后调用它?

0 投票
6 回答
24184 浏览

ruby - Ruby中的“通过引用传递参数”?

在 Ruby 中,是否可以通过引用传递具有值类型语义的参数(例如 Fixnum)?我正在寻找类似于 C# 的 ' ref ' 关键字的东西。

例子:

顺便提一句。我知道我可以使用:

0 投票
10 回答
91230 浏览

c - 在 C 中按值传递结构而不是传递指针有什么缺点吗?

在 C 中按值传递结构而不是传递指针有什么缺点吗?

如果结构很大,显然存在复制大量数据的性能方面,但对于较小的结构,它应该基本上与向函数传递多个值相同。

当用作返回值时,它可能会更有趣。C 只有函数的单个返回值,但您通常需要多个。所以一个简单的解决方案是将它们放在一个结构中并返回它。

是否有任何理由支持或反对这一点?

由于我在这里谈论的内容对每个人来说可能并不明显,所以我将举一个简单的例子。

如果您使用 C 进行编程,您迟早会开始编写如下所示的函数:

这不是问题。唯一的问题是您必须与您的同事商定参数的顺序,以便您在所有函数中使用相同的约定。

但是当你想返回相同类型的信息时会发生什么?你通常会得到这样的东西:

这工作正常,但问题更多。返回值是返回值,但在此实现中不是。从上面无法看出函数 get_data 不允许查看 len 指向的内容。并且没有什么可以让编译器检查一个值是否实际上是通过该指针返回的。所以下个月,当其他人在没有正确理解的情况下修改代码(因为他没有阅读文档?)它会在没有人注意到的情况下被破坏,或者它开始随机崩溃。

所以,我提出的解决方案是简单的结构

示例可以这样重写:

出于某种原因,我认为大多数人会本能地让 Exam_data 获取指向结构 blob 的指针,但我不明白为什么。它仍然得到一个指针和一个整数,它们在一起更清楚了。而在 get_data 的情况下,不可能像我之前描述的那样搞砸,因为长度没有输入值,并且必须有一个返回的长度。

0 投票
7 回答
137464 浏览

c++ - 在 C++ 中通过指针传递比通过引用传递有好处吗?

在 C++ 中通过指针传递比通过引用传递有什么好处?

最近,我看到了许多选择通过指针传递函数参数而不是通过引用传递的示例。这样做有好处吗?

例子:

打电话给

对比

打电话给

0 投票
5 回答
29362 浏览

variables - 何时使用对象实例变量与将参数传递给方法

您如何决定将参数传递给方法还是简单地将它们声明为对所有对象方法可见的对象实例变量?

我更喜欢将实例变量保存在类末尾的列表中,但是随着程序的增长,这个列表会变得更长。我想如果一个变量被传递得足够频繁,它应该对所有需要它的方法都是可见的,但是我想知道,“如果一切都是公开的,那么根本不需要传递任何东西!”

0 投票
3 回答
1362 浏览

c# - 将关联数组传递给方法的简洁方法

寻找一种将关联数组传递给方法的方法。我正在寻找用 C# 重写一个 Actionscript 补间包,但遇到了“关联”数组/对象的问题。通常在 Actionscript 中,我可能会执行以下操作:

这可以称为:

我正在寻找一种在 C# 中做同样事情的方法。到目前为止,我已经收集了我的选项:

a)创建一个类或结构来定义可能的参数键和类型并传递它

b) 将参数作为泛型类型传递

假设

并找出一些在补间函数中使用它的方法(我不确定如何分离给定该对象的键=值。有什么想法吗?)

c) 创建一个Dictionary<string, object>将参数传递给补间函数

还有其他想法或示例代码吗?我是 C# 的新手。

编辑

花了我一整天才弄清楚:

“匿名类型不能跨程序集边界共享。编译器确保每个程序集中给定的属性名称/类型对序列最多有一个匿名类型。要在程序集之间传递结构,您需要正确定义它们。”

0 投票
7 回答
1270 浏览

java - 检测作为参数传递的对象的变化值

我现在正在使用看起来像这样的代码

我认为更改作为参数传递的对象是不好的做法。是否有检测这种代码的工具?我查看了 findbugs、pmd 和 checkstyle,但找不到任何检查。

PS对不起不好的例子。

0 投票
1 回答
89 浏览

asp.net - 如何使用另一个控件的 ID 将另一个控件作为参数传递到用户创建的 ASP.NET 控件中?

我正在尝试创建一个控件 ( MyControl),它对其所在页面上的其他控件执行操作。它有一个属性:

我希望能够从使用该控件的 ASPX 页面设置此属性。现在,我能做到的唯一方法是在Page_Load代码隐藏中:

不必在使用的每个页面的代码隐藏上MyControl执行此操作,我只想在 ASPX 页面上执行此操作:

为了做到这一点,我尝试在初始化Page.FindControl()时使用 ID 字符串上的方法来查找引用的控件MyControl,但它只搜索页面的顶级控件。我可以编写自己的 recursive FindControl(),但我认为必须有更好的方法来做到这一点,而且我担心这样的性能。有任何想法吗?