也许这是一个愚蠢的问题而且我完全误解了Swift中传递变量的方式,但我认为Swift默认是通过副本传递的,你可以使用inout
关键字来表示通过引用传递。
那么,如果我有一个具有UIView
参数的函数,我可以更改该函数中backgroundColor
的{{1}},并且它会反映在该函数之外功能。如果函数在传递时创建了本地副本,那么它如何影响传递的变量?
为什么这不需要inout?
答案 0 :(得分:1)
因为你传递的UIView
是一个类实例:它是一个开头的指针。所以,实质上, 按值传递该指针,因为您没有将引用传递给该指针(如 C <中的&pointer
/强>)。
请参阅Is Swift Pass By Value or Pass By Reference以获得详尽的答案。