佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > ruby 模塊

ruby 模塊

熱門標(biāo)簽:電話運(yùn)營中心 呼叫中心市場需求 客戶服務(wù) Win7旗艦版 語音系統(tǒng) 百度AI接口 硅谷的囚徒呼叫中心 企業(yè)做大做強(qiáng)
 Ruby的模塊非常類似類,除了:



模塊不可以有實(shí)體 

模塊不可以有子類 

模塊由module...end定義.


實(shí)際上...模塊的'模塊類'是'類的類'這個(gè)類的父類.搞懂了嗎?不懂?讓我們繼續(xù)看下去吧.

模塊有兩種用法.其一是將相近的方法和實(shí)體放在一個(gè)相對集中的域里.Ruby標(biāo)準(zhǔn)包里的Math模塊就扮演著這一角色:

ruby> Math.sqrt(2)
   1.41421
ruby> Math::PI
   3.14159  


::操作符告訴 Ruby 解釋器在哪里找常數(shù)的值(可以想像,Math外的其它模塊用PI表示其它的一些東西).如果我們想省掉 :: 直接調(diào)用一個(gè)模塊的方法和常數(shù),我們可以用 include:

ruby> include Math
   Object
ruby> sqrt(2)
   1.41421
ruby> PI
   3.14159  


模塊的另一用法是糅和(mixin).某些OO語言,包括C++,允許多重繼承(multiple inheritance),即從多個(gè)的父類里繼承. 現(xiàn)實(shí)世界里一個(gè)多重繼承的例子是鬧鐘:你可以想像鬧鐘屬于鐘類同是屬于帶蜂音器的事物類.

Ruby并未特意實(shí)現(xiàn)真正的多重繼承,但糅和技術(shù)是一很好的替代.記得模塊無法實(shí)體化或子類化;但如果我們在類定義里include一個(gè)方法,
它的方法便實(shí)際上已加入,或"糅合"進(jìn)這個(gè)類.

糅合可以視為一種尋求一切我們希望得到的特定屬性的方法.舉個(gè)例子,如果一個(gè)類有個(gè) each 方法,把標(biāo)準(zhǔn)庫里的Enumerable模塊糅合進(jìn)來就自然地賦予我們 sort 和 find 兩個(gè)方法.

模塊的使用令到我們獲得多重繼承的基本功能卻可通過簡單的樹結(jié)構(gòu)表述類關(guān)系,同時(shí)也可觀地簡化了語言的實(shí)現(xiàn)(Java的設(shè)計(jì)者也做了一個(gè)類似的選擇).  
 
您可能感興趣的文章:
  • Ruby中的block代碼塊學(xué)習(xí)教程
  • 詳解Ruby中的代碼塊對象Proc
  • Ruby中編寫類與模塊的風(fēng)格指南
  • Ruby中關(guān)于模塊的一些基礎(chǔ)知識
  • 介紹Ruby中的模塊與混合類型的相關(guān)知識
  • 詳解Ruby中的塊的知識
  • Ruby中使用SWIG編寫ruby擴(kuò)展模塊實(shí)例
  • 使用Ruby re模塊創(chuàng)建復(fù)雜的正則表達(dá)式
  • 深入理解Ruby中的代碼塊block特性

標(biāo)簽:山西 海南 山西 安康 長沙 崇左 喀什 濟(jì)南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ruby 模塊》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阿克苏市| 镇赉县| 阜平县| 闻喜县| 鸡泽县| 横山县| 资中县| 屏南县| 普格县| 贵溪市| 延庆县| 五河县| 普兰县| 永康市| 南岸区| 隆林| 营口市| 昭平县| 清远市| 镇远县| 油尖旺区| 临武县| 县级市| 惠水县| 兴文县| 青州市| 崇义县| 清徐县| 外汇| 文山县| 康马县| 石首市| 文水县| 丹巴县| 当涂县| 榕江县| 临猗县| 沁水县| 云和县| 曲阜市| 麦盖提县|