是否可以通过值将类对象传递给函数? 如果是的话,怎么做,如果不是,我怎么能用副本呢?
答案 0 :(得分:2)
无法通过值在Swift中传递类对象。更重要的是,没有制作对象副本的一般方法,因此您需要提供例如适当的初始化者。
答案 1 :(得分:0)
值对象和引用对象用于不同的目的。询问如何按值传递引用对象是绝对没有意义的。但是,很多时候你会传递不可变对象,这意味着对象的引用是的值。
顺便说一下:你不是指"类对象"。你的意思是"一个班级的实例"。在Objective-C中,类本身就是对象。例如,您将alloc消息发送到类对象。
答案 2 :(得分:0)
如何按值传递引用类型?
这个问题的答案就像措辞一样,你只是按价值传递它。它对引用类型和值类型的工作方式完全相同。在Swift中未标记为inout
的任何参数都是按值传递。
引用类型变量的值是引用,它指向一个对象。按值传递引用时,接收函数会接收此引用的副本,该副本指向同一对象。
在进一步阅读您的问题后,您似乎根本没有询问是否传递了引用类型。相反,你问的是复制对象。当您编写"引用类型"你真正的意思是像#"对象类型",它的值是一个对象,当通过值传递时会产生对象的副本。
Swift没有"对象类型&#34 ;;就像Objective-C和Java没有"对象类型"。拥有一个变量,其值为#34;是一个对象&#34 ;;你只能有一个变量,其值是一个引用"指向一个对象"。您通过这些引用操作对象。语言中没有语法来解除" dereference"对它指向的对象的引用。