最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ruby 模塊

 更新時(shí)間:2007年11月24日 14:15:49   作者:  
 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è)類似的選擇).  
 

相關(guān)文章

  • Ruby版本管理工具RVM的安裝和使用教程

    Ruby版本管理工具RVM的安裝和使用教程

    這篇文章主要介紹了Ruby版本管理工具RVM的安裝和使用教程,本文示例基于類Unix的系統(tǒng)環(huán)境,需要的朋友可以參考下
    2015-08-08
  • 詳解Ruby中范圍的概念

    詳解Ruby中范圍的概念

    這篇文章主要介紹了詳解Ruby中范圍的概念,需要的朋友可以參考下
    2015-05-05
  • Ruby中處理時(shí)間的一些基本操作

    Ruby中處理時(shí)間的一些基本操作

    這篇文章主要介紹了Ruby中處理時(shí)間的一些基本操作,主要是利用到了Ruby中強(qiáng)大的Time模塊,需要的朋友可以參考下
    2015-05-05
  • Ruby常量查找路徑問題深入研究

    Ruby常量查找路徑問題深入研究

    這篇文章主要介紹了Ruby常量查找路徑問題深入研究,本文給出了多個(gè)例子來探討Ruby的常量查找路徑,并給出了總結(jié)結(jié)論,需要的朋友可以參考下
    2015-03-03
  • Ruby初學(xué)筆記之Hello World

    Ruby初學(xué)筆記之Hello World

    這篇文章主要介紹了Ruby初學(xué)筆記之Hello World,本文是一篇Ruby自學(xué)筆記,本文分別用普通方法、函數(shù)、類輸出Hello World,從一個(gè)一個(gè)的例子中了解Ruby編程,需要的朋友可以參考下
    2015-06-06
  • 對Ruby on Rails進(jìn)行高效的單元測試的教程

    對Ruby on Rails進(jìn)行高效的單元測試的教程

    這篇文章主要介紹了在Ruby on Rails中進(jìn)行高效的單元測試的教程,使用到了Ruby的RSpec和Factory Girl框架,需要的朋友可以參考下
    2015-04-04
  • Ruby使用REXML庫來解析xml格式數(shù)據(jù)的方法

    Ruby使用REXML庫來解析xml格式數(shù)據(jù)的方法

    這篇文章主要介紹了Ruby使用REXML庫來解析xml格式數(shù)據(jù)的方法,文章最后提及了REXML庫的使用相關(guān)安全問題可以注意一下,需要的朋友可以參考下
    2016-04-04
  • 詳細(xì)解讀Ruby當(dāng)中的條件判斷語句

    詳細(xì)解讀Ruby當(dāng)中的條件判斷語句

    這篇文章主要介紹了詳細(xì)解讀Ruby當(dāng)中的條件判斷語句,if、else等邏輯判斷語句是各門編程語言的基礎(chǔ),需要的朋友可以參考下
    2015-05-05
  • Ruby中Hash的11個(gè)問題解答

    Ruby中Hash的11個(gè)問題解答

    這篇文章主要介紹了Ruby中Hash的11個(gè)問題解答,本文講解了如何創(chuàng)建Hash、Hash的鍵是哪些類型、 如何給Hash賦默認(rèn)的值等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • Ruby3多線程并行Ractor使用方法詳解

    Ruby3多線程并行Ractor使用方法詳解

    這篇文章主要介紹了Ruby3多線程并行Ractor使用方法詳解,Ruby3之前使用Thread來創(chuàng)建新線,Ruby3通過Ractor支持真正的多線程并行,多個(gè)Ractor之間可并行獨(dú)立運(yùn)行程,需要的朋友可以參考下
    2022-04-04

最新評論

乐业县| 裕民县| 安塞县| 萨迦县| 临安市| 望江县| 南溪县| 宣威市| 和平区| 临西县| 任丘市| 奎屯市| 彭阳县| 大关县| 波密县| 永清县| 清新县| 炎陵县| 卓资县| 攀枝花市| 本溪市| 马关县| 三门县| 阿城市| 天水市| 思茅市| 灵石县| 天峨县| 门源| 宁远县| 鄂尔多斯市| 宁南县| 靖州| 黄冈市| 龙川县| 山阴县| 辉县市| 丹寨县| 江北区| 伊宁县| 高尔夫|