好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 在Ruby中查找和執行方法

在Ruby中查找和執行方法

熱門標簽:地圖標注賺錢項目注冊 徐州網絡外呼系統哪個好 湖州u友防封電銷卡 高德地圖標注客服 滴滴外呼系統 白銀外呼paas系統 常德電銷平臺外呼系統軟件價格 電銷機器人廠商代理 百度地圖標注自定義圖片

當調用一個方法時,Ruby會做兩件事。

1.找到這個方法。這個方法稱為方法查找。

2.執行這個方法。為了做到這點,Ruby需要一個叫做self的東西。

這樣的一個過程--發現一個方法再執行之--在每種面向對象語言中都會發生。不過,對于像Ruby這樣非常動態的語言,深入理解這個過程顯得尤為重要。你有沒有好奇過一個方法究竟定義在哪里呢?如果有,那絕對應該深入理解方法查找及self。

當調用一個方法時,Ruby會在對象的類中查找那個方法。不過,在給出更復雜的例子之前,你需要了解兩個新概念:接收者(receiver)和祖先鏈(ancetors chain)。

接收者就是你調用方法所在的對象。例如,在my_string.reverse()語句中,my_string就是接收者。

為了理解祖先鏈的概念,可以先來觀察任意一個Ruby類。想象從一個類移動到它的超類,然后再移動到超類的超類,依此類推,直到到達Object類(所有類的默認超類),最后來到BasicObject類(Ruby類體系結構的根節點)。在這個過程中,你所經歷的類路徑就是該類的祖先鏈(祖先鏈中還可以包含模塊)。

既然你已經知道什么是接受者及祖先鏈了,就可以用一句話來概括方法查找的過程:為了查找一個方法,Ruby首先在接受者的類中查找,然后一層層地在祖先鏈中查找,直到找到這個方法為止。

class MyClass
  def my_method
    my_method()
  end
end
 
class MySubclass MyClass
end
 
obj = MySubclass.new
obj.my_method()              # =>"my_method()"

  當調用my_method()方法時,Ruby會從接收者obj出發,來到MySubclass類。由于在這里不能找到my_method()方法,Ruby向上來到MyClass類,在那里找到了這個方法。

如果在這兒也沒找到這個方法,那么Ruby將會沿著祖先鏈向上來到Object類和BasicObject類。按照大多數人畫圖的順序,這種查找行為被稱為"向右一步,再向上"規則。也就是說,先向右一步來到接收者所在的類,然后沿著祖先鏈向上直到找到給定的方法。

到目前為止,我們只關注于如何找到方法,現在終于要來看看如何執行方法了。

設想你就是Ruby解釋器。若某個人調用了一個名叫my_method()的方法,你用"向右一步,再向上"的方式找到了這個方法,你發現這個方法定義如下:
 

def my_method
  temp = @x +1
  my_other_method(temp)    
end

  為了執行這個方法,你需要回答兩個問題。首先,實例變量@x屬于哪個對象?其次,你應該在哪個對象上調用方法my_other_method()?

作為具有智慧的人類(而非愚蠢的計算機程序),你很可能憑直覺就能回答這兩個問題:@x實例變量和my_other_method()方法都屬于接收者--那個最初調用my_method()方法的對象。不過,Ruby可沒有直覺,這對它來說是一個奢侈的東西。當調用一個方法時,Ruby需要持有一個接收者的引用,正是這個引用的存在,它可以記得哪個對象是接收者,再用它來執行這個方法。這個接收者引用也可以為你所用。

您可能感興趣的文章:
  • js中style.display=""無效的解決方法
  • JS中style.display和style.visibility的區別實例說明
  • js style.display=block顯示布局錯亂問題的解決方法

標簽:遼寧 永州 荊門 三沙 梧州 普洱 公主嶺 張家界

巨人網絡通訊聲明:本文標題《在Ruby中查找和執行方法》,本文關鍵詞  在,Ruby,中,查找,和,執行,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Ruby中查找和執行方法》相關的同類信息!
  • 本頁收集關于在Ruby中查找和執行方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 美女的全身隐私免费| 国产亚洲综合一区二区A片吴施蒙| 国产亚洲精品久久yy50趣夜| 你真湿夹得我好爽浪货| 俺也啪| 亚洲熟女AV综合一区二区三区| 动漫美女交配| 曲松县| 中文字幕av人妻少妇一区二区| 97国产精品一二三产区区别小说 | 男女插视频| 国产精品流白浆视频AV拍拍拍| 成人做爰A片免费看黄冈| 成人永久免费视频网站在线观看| 被绑在机械椅上灌满| 国产成人无码精品A级毛片抽搐| 香蕉app成视频人网址| 女性私密部位粉嫩嫩| 久久久国产一区二区三区四区小说| 亚洲欧美精品日韩欧美| jk美女被爆羞羞动漫| 中日韩特黄A片免费视频| www成人国产在线观看网站| 色戒高清| 美女脱??给我捏??变态软件| 白洁乱欲| 福利视频91| 美女脱光衣服的视频软件| 性漫画xxxx鸣漫画视频| 男女交配视频| 久久精品视频免费观看| 男男文高h| 日韩免费观看的一级毛片| 国产精品久久久久久久9999| 人善交vide欧美| gogo大胆高清免费视频| 汉服女装齐胸襦裙被c到喷水| 国产精品﹣色哟哟苏小小| 黑寡妇下面好紧好湿好爽| 孩子与孩子差差免费视频| 亚洲精品高清中文字幕完整版|