问题标签 [inout]

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 投票
5 回答
19860 浏览

swift - Swift 语言中的和号 (&) 是什么意思?

我知道&符号是一种位操作,但有时我会在变量名前面看到它。&在变量前面放一个有什么作用?

0 投票
1 回答
89 浏览

ios - inout 参数的地址不同

我有三个类 A、B 和 C。A 有一个名为 rA 的资源。我想要实现的是所有这些实例都引用了完全相同的资源。

因此,用 Swift 术语具体来说:

A 类有一个名为 foo 的属性:

B 类有一个名为 foo 的属性,它作为 inout 参数传递给初始化程序:

C类类似于B类

如果我foo从 A 类转到 B 类(或 C),地址怎么会改变?

在 AI 中,它会将其传递给 B(或 C),如下所示:

当我foo在 A 中初始化后打印地址时,它给我的地址与在 B 中分配后的地址不同。

任何想法为什么会这样?

0 投票
1 回答
1148 浏览

swift2 - 使用 inout 关键字:参数是通过引用传递还是通过拷贝入拷贝出(/按值调用结果)

问题:根据下面的信息和讨论:inout参数是通过引用传递还是通过复制复制输出


基于以下 SO 线程,以inout关键字标记的函数参数通过引用传递

我们注意到最上面的两个线程是 Swift 2.0 之前的版本;我在 SO 上找不到关于这个主题的任何更新的讨论(除了有点相关的第三个线程链接)。


但是,根据 Apple 的文档(据我所知),由inout关键字标记的函数参数是通过copy-in copy-out传递的(或按值调用 result

传入传出参数如下:

当函数被调用时,参数的值被复制。在函数体中,副本被修改。当函数返回时,副本的值被分配给原始参数。这种行为称为复制输入复制输出或按值调用结果。...

...您通过将 inout 关键字放在其参数定义的开头来编写一个 in-out 参数。一个 in-out 参数有一个值,它被传入函数,被函数修改,并被传回函数以替换原始值。...


现在以我自己的示例为例,尝试对此进行调查:

这个例子意味着inout参数确实是通过引用传递的(正如上面两个链接的 SO 线程中所指出的那样)。由于我们在 inout 参数前加上一个 & 符号 ( &),这确实“感觉”合乎逻辑。

为了尽力确保我的示例具有代表性——因为这里的inout参数myLocalStruct是作为类属性发送的——我还确保myLocalStruct没有得到一些“幕后”引用,因为它是类属性:

好的,myLocalStruct在这个例子中真的是函数局部的,因此是按值传递的(没有在引擎盖后面的引用)。


结果:鉴于上述情况,inout参数是通过引用传递的吗?

我有两个可能的后续问题:

  1. 我是否误解了inoutApple 语言文档中的描述,可以将其解释为“通过引用传递”吗?
  2. 或者,我的例子仍然不能代表这种情况吗?
0 投票
2 回答
885 浏览

mysql - SELECT 语句在 MySQL 存储过程中有意义吗?

我的系统:MySQL 5.6.12

由于您不能像函数一样在 SQL 语句中使用存储过程,所以我想知道只有 SELECT 语句但没有 OUT/INOUT 参数或进行一些操作的存储过程是否有任何用途。

例子:

我可以这样调用存储过程:

它在 IDE 中显示了一个结果集,但除此之外,我看不到任何真正的实际用途。

我错过了什么吗?

0 投票
1 回答
156 浏览

mysql - MySQL 存储过程参数

我目前正在研究 MySQL 存储过程,我对这些还很陌生。

我们什么时候需要使用OUT参数?单独然后在底部IN只有SELECT语句,结果也将返回,而无需调用@OUT参数。

我只是需要一些光。谢谢你。

0 投票
1 回答
154 浏览

swift - “交换(&someInt,&anotherInt)”中的“&”。它代表什么?它的作用是什么?

我是 Swift 新手,我正在尝试学习“inout”关键字的概念。我在“快速编程语言 2.1”中看到了这段代码。我的问题是,为什么“swap(&someInt, &anotherInt)”中有一个“&”。它代表什么?它的作用是什么?

0 投票
3 回答
991 浏览

vhdl - 避免在 VHDL 中使用 inout

我想避免在下面的代码中使用 inout。

有什么办法可以做到吗?例如帮助信号?

0 投票
2 回答
883 浏览

swift - Swift: inout with generic functions and constraints

I am making my first steps in Swift and got along the first problem. I am trying to pass an array by reference using inout on an generic function with constraints.

First, my application start point:

And here my class with the actual problem:

I am getting the following error in Xcode on the line calling exchange:

Am I missing here something?

Update: Added complete project code.

0 投票
1 回答
19 浏览

postgresql - 如何在 PostgreSQL 中消除对具有少量 INOUT 参数的函数的多次调用

我将代码从 Oracle 移植到 PosgreSQL(经典,Carl)。我发现,我的函数调用了 3 次,我做了这个简单的例子: 请看我的例子:

并得到下一个调试输出:

所以这是一个问题:为什么我的函数调用 3 次以及如何避免这种情况?谢谢你。

0 投票
2 回答
44 浏览

arrays - 如何修改传递给函数的二维数组?

我的功能如下

当我尝试修改时listresult它给了我错误。我搜索过该input关键字可用于通过引用传递参数,然后可以在本地和外部对其进行修改,但我无法使语法正确。我怎样才能让它工作?或者有什么更好的方法可以修改它们?