在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Ruby/ Ruby模塊
Ruby for循環(huán)
Ruby教程
Ruby文件I/O
Ruby迭代器
Ruby哈希
Ruby日期時(shí)間
Ruby類和對(duì)象
Ruby快速入門(30分鐘)
Ruby redo/retry語句
Ruby模塊
Ruby解析XML(REXML)
Ruby if-else語句
Ruby的功能特點(diǎn)
Ruby break/next語句
Ruby方法
Ruby是什么?
Ruby與Python比較
Ruby Case語句
Ruby目錄
Ruby范圍
Ruby異常
Ruby套接字編程(Socket)
Ruby字符串
Ruby安裝配置
Ruby運(yùn)算符
Ruby while/do...while循環(huán)語句
Ruby第一個(gè)HelloWorld程序
Ruby until循環(huán)語句
Ruby注釋
Ruby塊
Ruby數(shù)據(jù)類型
Ruby面向?qū)ο?/span>
Ruby正則表達(dá)式
Ruby數(shù)組
Ruby變量
Ruby多線程編程

Ruby模塊

Ruby模塊是方法和常量的集合。 模塊方法可以是實(shí)例方法或模塊方法。實(shí)例方法是包含模塊的類中的方法。

可以在不創(chuàng)建封裝對(duì)象的情況下調(diào)用模塊方法,但是實(shí)例方法不能這么直接調(diào)用。

Ruby模塊類似于類,因?yàn)樗鼈儼椒?,類定義,常量和其他模塊的集合。Ruby模塊可定義為類。但無法使用模塊來創(chuàng)建對(duì)象或子類。也沒有繼承的模塊層次結(jié)構(gòu)。

模塊基本上主要有兩個(gè)目的:

  • 它們作為命名空間,防止對(duì)象名字沖突。
  • 它們?cè)试Smixin工具在類之間共享功能。

語法

module ModuleName  
   statement1  
   statement2  
   ...........  
end

模塊名稱應(yīng)以大寫字母開頭。

模塊命名空間

在編寫較大的文件時(shí),需要生成大量可重用的代碼。 這些代碼被組織成類,可以插入到一個(gè)文件中。

例如,如果兩個(gè)人在不同的文件中具有相同的方法名稱。 并且這兩個(gè)文件都需要包含在第三個(gè)文件中。 那么它可能會(huì)產(chǎn)生問題,因?yàn)檫@兩個(gè)包含的文件中的方法名稱是相同的。

這里,模塊機(jī)制發(fā)揮作用。 模塊定義一個(gè)命名空間,您可以在命名空間中定義方法和常量,而不用管其他方法和常量執(zhí)行。

示例:

假設(shè)在modules-file1.rb中,定義了不同類型的圖書館書籍,如小說,恐怖等。

modules-file2.rb中,定義了閱讀的小說數(shù)量,包括小說小說。

modules-file3.rb中,需要加載文件modules-file1.rbmodules-file2.rb。這里我們將使用模塊機(jī)制。

創(chuàng)建文件:modules-file1.rb ,其代碼如下所示 -

#!/usr/bin/ruby   

# Module defined in file1.rb file   

module Library   
   num_of_books = 300   
   def Library.fiction(120)   
   # ..   
   end   
   def Library.horror(180)   
   # ..   
   end   
end

創(chuàng)建文件:modules-file2.rb ,其代碼如下所示 -

#!/usr/bin/ruby   

# Module defined in file2.rb file   

module Novel   
   total = 123   
   read = 25   
   def Novel.fiction(left)   
   # ...   
   end   
end

創(chuàng)建文件:modules-file3.rb ,其代碼如下所示 -

require "Library"   
require "Novel"   

x = Library.fiction(Library::num_of_books)   
y = Novel.fiction(Novel::total)

通過在模塊名稱后帶點(diǎn)(.)符號(hào)來調(diào)用模塊方法,并使用模塊名稱和兩個(gè)冒號(hào)引用常量。

模塊混合

Ruby不支持多重繼承。 模塊消除了在Ruby中使用mixin的多重繼承的需要。模塊沒有實(shí)例,因?yàn)樗皇且粋€(gè)類。 但是,一個(gè)模塊可以包含在一個(gè)類中。

當(dāng)您在類中包含模塊時(shí),該類將可以訪問模塊的方法。

示例:

module Name   
   def bella   
   end   
   def ana   
   end   
end   
module Job   
   def editor   
   end   
   def writer   
   end   
end   

class Combo   
include Name   
include Job   
   def f   
   end   
end   

final=Combo.new   
final.bella   
final.ana   
final.editor   
final.writer   
final.f

這里,模塊Name由方法bellaana組成。 模塊Job由方法editorwriter組成。Combo類包括兩個(gè)模塊,由于Combo可以訪問所有四種方法。 因此,Combo類作為mixin混合類型使用。