如果Swift通过值而不是引用传递给函数,为什么我可以在Swift中操作UIView的属性?

时间:2015-08-23 19:26:45

标签: ios swift uiview reference pass-by-reference

也许这是一个愚蠢的问题而且我完全误解了Swift中传递变量的方式,但我认为Swift默认是通过副本传递的,你可以使用inout关键字来表示通过引用传递。

那么,如果我有一个具有UIView参数的函数,我可以更改该函数中backgroundColor的{​​{1}},并且它会反映在该函数之外功能。如果函数在传递时创建了本地副本,那么它如何影响传递的变量?

为什么这不需要inout?

1 个答案:

答案 0 :(得分:1)

因为你传递的UIView是一个类实例:它是一个开头的指针。所以,实质上, 按值传递该指针,因为您没有将引用传递给该指针(如 C <中的&pointer /强>)。

请参阅Is Swift Pass By Value or Pass By Reference以获得详尽的答案。