欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

類方法

類方法其實質(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

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

類擴展

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

module MyModule
  def my_method; ‘hello'; end
end

class MyClass
  class < self
    include MyModule
  end
end

MyClass.my_method

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

對象擴展

類方法是單件方法的特例,因此可以把類擴展這種技巧應用到任意對象上,這種技巧即為對象擴展
 

# 法一: 打開單件類來擴展
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
#對象擴展
obj.extend MyModule
obj.my_method  # => “hello” 
#類擴展
class MyClass
  extend MyModule
end

MyClass.my_method # => “hello”

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

相關文章

  • Python的Flask框架中SERVER_NAME域名項的配置教程

    Python的Flask框架中SERVER_NAME域名項的配置教程

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

    Ruby下WebDriver的相關操作指南

    這篇文章主要介紹了Ruby下WebDriver的相關操作指南,同時也介紹了啟動firefox drive加載firebug擴展的方法,需要的朋友可以參考下
    2015-07-07
  • Ruby配置rspec和RestClient來檢測服務器

    Ruby配置rspec和RestClient來檢測服務器

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

    Ruby 多線程的潛力和弱點分析

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

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

    這篇文章主要介紹了初步講解Ruby編程中的多線程,線程是各種編程語言學習當中的重點和難點,需要的朋友可以參考下
    2015-04-04
  • ruby的程序結構介紹

    ruby的程序結構介紹

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

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

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

    詳解Ruby中的代碼塊對象Proc

    在Ruby中一個代碼塊block不是對象,但可以用Proc來替代其作為對象進行操作,接下來我們就來詳解Ruby中的代碼塊對象Proc
    2016-05-05
  • Ruby學習筆記一

    Ruby學習筆記一

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

    Ruby中處理時間的一些基本操作

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

最新評論