亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Ruby面向?qū)ο缶幊讨蓄惖姆椒ㄅc類的擴(kuò)展

 更新時(shí)間:2016年06月04日 16:22:20   作者:日拱一卒  
類與方法是面向?qū)ο缶幊陶Z(yǔ)言中的典型特性,方法的概念與函數(shù)基本上相同,只不過類方法會(huì)受到類作用域的約束,這里我們就簡(jiǎn)單來看一下Ruby面向?qū)ο缶幊讨蓄惖姆椒ㄅc類的擴(kuò)展

類方法

類方法其實(shí)質(zhì)是生活在該類的單件類中的單件方法。其定義方法有三種,分別是:

# 法一
def MyClass.a_class_method; end


# 法二
class MyClass
  def self.anther_class_method; end
end


# 法三*
class MyClass
  class << self
    def yet_another_class_method; end
  end
end

其中第三種方法道出了,類方法的實(shí)質(zhì),特別記憶一下!

類擴(kuò)展

類擴(kuò)展通過向類的單件類中添加模塊來定義類方法。

module MyModule
  def my_method; ‘hello'; end
end

class MyClass
  class < self
    include MyModule
  end
end

MyClass.my_method

上面代碼展示了具體類擴(kuò)展的實(shí)現(xiàn)方式,將一個(gè)MyModule模塊引入到MyClass類的單件類中,因?yàn)閙y_method方法是MyClass的單件類的一個(gè)實(shí)例方法,這樣,my_method方法也是MyClass的一個(gè)類方法。

對(duì)象擴(kuò)展

類方法是單件方法的特例,因此可以把類擴(kuò)展這種技巧應(yīng)用到任意對(duì)象上,這種技巧即為對(duì)象擴(kuò)展
 

# 法一: 打開單件類來擴(kuò)展
module MyModule
  def my_method; ‘hello'; end
end

obj = Object.new
class << obj
  include MyModule
end

obj.my_method  # => “hello”
obj.singleton_methods  # => [:my_method]
# 法二:Object#extend方法
module MyModule
  def my_method; ‘hello'; end
end

obj = Object.new
#對(duì)象擴(kuò)展
obj.extend MyModule
obj.my_method  # => “hello” 
#類擴(kuò)展
class MyClass
  extend MyModule
end

MyClass.my_method # => “hello”

Object#extend是在接受者的單件類中包含模塊的快鍵方式。

相關(guān)文章

  • Python的Flask框架中SERVER_NAME域名項(xiàng)的配置教程

    Python的Flask框架中SERVER_NAME域名項(xiàng)的配置教程

    SERVER_NAME項(xiàng)在Flask的路由配置中至關(guān)重要,特別是在配置絕對(duì)url和子域名的操作中,這里我們就來看一下Python的Flask框架中SERVER_NAME項(xiàng)的配置教程:
    2016-06-06
  • Ruby下WebDriver的相關(guān)操作指南

    Ruby下WebDriver的相關(guān)操作指南

    這篇文章主要介紹了Ruby下WebDriver的相關(guān)操作指南,同時(shí)也介紹了啟動(dòng)firefox drive加載firebug擴(kuò)展的方法,需要的朋友可以參考下
    2015-07-07
  • Ruby配置rspec和RestClient來檢測(cè)服務(wù)器

    Ruby配置rspec和RestClient來檢測(cè)服務(wù)器

    這篇文章主要介紹了Ruby配置rspec和RestClient來檢測(cè)服務(wù)器的方法,包括JSON文件的相關(guān)配置,需要的朋友可以參考下
    2015-07-07
  • Ruby 多線程的潛力和弱點(diǎn)分析

    Ruby 多線程的潛力和弱點(diǎn)分析

    這篇文章主要介紹了Ruby 多線程的潛力和弱點(diǎn)分析,本文講解了Ruby 多線程和 IO Block、Ruby GIL 的影響、JRuby 去除了 GIL、Ruby 多線程總結(jié)等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 初步講解Ruby編程中的多線程

    初步講解Ruby編程中的多線程

    這篇文章主要介紹了初步講解Ruby編程中的多線程,線程是各種編程語(yǔ)言學(xué)習(xí)當(dāng)中的重點(diǎn)和難點(diǎn),需要的朋友可以參考下
    2015-04-04
  • ruby的程序結(jié)構(gòu)介紹

    ruby的程序結(jié)構(gòu)介紹

    這篇文章主要介紹了ruby的程序結(jié)構(gòu)介紹,本文講解了源文件、模塊、控制結(jié)構(gòu)、方法定義、類及對(duì)象等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Ruby使用Monkey Patch猴子補(bǔ)丁方式進(jìn)行程序開發(fā)的示例

    Ruby使用Monkey Patch猴子補(bǔ)丁方式進(jìn)行程序開發(fā)的示例

    Monkey Patch猴子補(bǔ)丁是指在程序解釋運(yùn)行時(shí)動(dòng)態(tài)添加類或模塊的做法,這里我們就來看一下Ruby使用Monkey Patch猴子補(bǔ)丁方式進(jìn)行程序開發(fā)的示例
    2016-05-05
  • 詳解Ruby中的代碼塊對(duì)象Proc

    詳解Ruby中的代碼塊對(duì)象Proc

    在Ruby中一個(gè)代碼塊block不是對(duì)象,但可以用Proc來替代其作為對(duì)象進(jìn)行操作,接下來我們就來詳解Ruby中的代碼塊對(duì)象Proc
    2016-05-05
  • Ruby學(xué)習(xí)筆記一

    Ruby學(xué)習(xí)筆記一

    學(xué)習(xí)ruby有段時(shí)間了,記錄下自己的學(xué)習(xí)心得并分享幾個(gè)例子給大家
    2014-07-07
  • Ruby中處理時(shí)間的一些基本操作

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

    這篇文章主要介紹了Ruby中處理時(shí)間的一些基本操作,主要是利用到了Ruby中強(qiáng)大的Time模塊,需要的朋友可以參考下
    2015-05-05

最新評(píng)論