推 chchwy:我記得訊息傳遞是從smalltalk傳下來的 03/29 11:33
推 ducksteven:dock typing 03/29 11:43
→ ducksteven:duck 03/29 11:43
→ poga:message跟duck typing並不一定相關吧? 03/29 13:00
→ JmeHsieh:run time vs comepile time,比較彈性,but 03/29 16:42
→ JmeHsieh:但是相對compile time能做的優化就比較少了 03/29 16:44
剛剛讀了維基百科的解釋,正如 Ruby 跟 C 的不同一樣
一個是 message passing 一個是 call mechanism ,這兩個是對比。
這兩種模式有三個不同:
1. Message passing 通常要把所有變數都複製一份傳到倍呼叫的地方。
Call 只需要把記憶體位置或者是 CPU regster 丟出去即可。
2. 非同步類的 Message passing 不一定要等對方回復後才能繼續
但是 call 是一定要等對方結束。
3. Message passing 能夠提供 1對多的服務,
這也代表物件本身可能隨時都會發生更動。
不過這些特性好像跟 Ruby 架構比較沒相關就是了。
至少我以為大部分的 Ruby 程式還是拿來當 call 寫所以也沒差?
主要還是因為都是 Message ,所以什麼都是用 reflection 來作
runtime中途也才能隨便插入新的功能,就是 ruby 的強處。
但是我還是想問有什麼時候會用到上面說的三點嗎?
※ 編輯: markmcm 來自: 111.70.180.216 (03/29 20:12)