作者uranusjr (←这人是超级笨蛋)
看板MacDev
标题Re: [问题] class method
时间Mon Oct 25 02:54:01 2010
※ 引述《zonble (zonble)》之铭言:
◆ From: 114.44.189.129
1F:推 Gsus:那问一下~ 前面所提到的没有call by ref是什麽意思呢? 10/25 00:30
2F:推 Gsus:我错了QQ 所以obj-c没有call by ref这件事是指什麽呢QQ 10/25 01:02
就我自己的认知, 这是很单纯的定义问题而已
Reference 是一个替身, 就像 Mac OS X 里的 alias, 可以当作那个东西本身来使用
这样就可以在不需要找到本来东西的状况下, 透过这个替身使用它
Value 则是...嗯, 一个值XD
Call by value 和 call by reference 的差别就是字面上的意思
如果呼叫一个东西时是用它的 reference, 就是後者
如果用来呼叫的东西是一个确切值, 就是前者
所以如果有个 C 函数呼叫一个 int, 那就是 call by value
因为这是提取那个变数的值, 不是直接呼叫那个变数本身
而如果例如一个 Java 函数呼叫一个 Integer, 那就是 call by reference
因为被传进去的会是那个 Integer 物件本身
如果用这种定义, 在 Objective-C 里没有 call by reference 这回事
因为根本无法直接呼叫某个物件本身
要呼叫一个物件, 唯一方法是用一个指向它的指标
而指标本身只是个记忆体位址, 当然是 value
我们只是藉由这个值去存取它指向的物件, 而仍然不是直接得到那个物件本身
--
Les grandes et les meilleurs
tone from "Zadok the Priest"
Eine grosse stattliche Veranstaltung
by F. Handel
THE MAIN EVENT! These are the men
Sie sind die Besten
"Champions League" by Tony Britten THESE ARE THE CHAMPIONS!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.81.146