自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby模塊相關(guān)概念解析

開發(fā) 開發(fā)工具
Ruby模塊對于一個初學(xué)Ruby的朋友來說,是一個比較難以了解的知識。希望通過這篇文章的介紹,大家可以初步掌握Ruby模塊的知識。

我們在學(xué)習(xí)Ruby語言的時候,可以充分的了解到其中的含義。在這篇文章中,我們將會了解到有關(guān)Ruby模塊的相關(guān)知識接受,方便大家的理解。#t#

Ruby模塊非常類似類,除了:

模塊不可以有實體
模塊不可以有子類
模塊由module...end定義.

實際上...Ruby模塊的'模塊類'是'類的類'這個類的父類.搞懂了嗎?不懂?讓我們繼續(xù)看下去吧.
模塊有兩種用法.其一是將相近的方法和實體放在一個相對集中的域里.Ruby標(biāo)準包里的Math模塊就扮演著這一角色:

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

 

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

  1. ruby> include Math   
  2. Object   
  3. ruby> sqrt(2)   
  4. 1.41421   
  5. ruby> PI   
  6. 3.14159   

 

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

Ruby并未特意實現(xiàn)真正的多重繼承,但糅和技術(shù)是一很好的替代.記得模塊無法實體化或子類化;但如果我們在類定義里include一個方法,

它的方法便實際上已加入,或"糅合"進這個類.

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

Ruby模塊的使用令到我們獲得多重繼承的基本功能卻可通過簡單的樹結(jié)構(gòu)表述類關(guān)系,同時也可觀地簡化了語言的實現(xiàn)(Java的設(shè)計者也做了一個類似的選擇).

責(zé)任編輯:曹凱 來源: jb51.net
相關(guān)推薦

2009-12-18 15:56:05

Ruby特殊語法

2009-12-16 14:33:21

Ruby哈希表

2009-12-23 15:27:34

WPF圖形系統(tǒng)

2009-12-28 15:18:29

WPF控件模型

2010-01-06 18:21:24

2009-12-28 16:20:50

WPF內(nèi)嵌樣式

2009-12-29 09:54:27

WPF文字布局

2009-12-23 17:18:45

WPF Attache

2010-02-02 16:15:38

C++變量聲明

2009-12-16 14:51:26

Ruby nil

2010-01-19 15:08:18

VB.NET對象成員

2010-02-01 11:01:30

C++靜態(tài)構(gòu)造函數(shù)

2009-12-18 15:24:52

2009-12-17 11:27:31

Ruby時間方法

2009-12-14 18:14:27

Ruby DSL

2009-12-16 10:57:16

Ruby文件鎖

2009-12-16 16:24:00

Ruby on Rai

2009-12-14 16:26:40

Ruby復(fù)制文件

2010-04-08 15:33:05

無線網(wǎng)絡(luò)橋接

2009-12-18 17:20:00

Ruby核心類
點贊
收藏

51CTO技術(shù)棧公眾號