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

介紹Ruby中的模塊與混合類型的相關知識

 更新時間:2015年05月12日 11:01:30   投稿:goldensun  
這篇文章主要介紹了Ruby中的模塊與混合類型的相關知識,包括平常人們常說的多態(tài)與繼承等相關知識點,需要的朋友可以參考下

模塊是組合在一起的方法,類和常量。模塊兩個主要好處:

  •     模塊提供了一個命名空間,并避免名稱沖突。
  •     模塊實現(xiàn)混合工廠。

模塊定義了一個命名空間,一個沙箱中方法和常量可以自由使用,而不必擔心踩到其他的方法和常數(shù)。
語法:

module Identifier
  statement1
  statement2
  ...........
end

就像被命名為類常量模塊中的常量,首字母大寫。定義的方法看起來很相似,模塊定義方法就像類的方法。

調用一個模塊方法和類方法一樣,通過模塊的名稱它名字前,引用一個常數(shù)使用該模塊的名稱和兩個冒號。
例子:

#!/usr/bin/ruby

# Module defined in trig.rb file

module Trig
  PI = 3.141592654
  def Trig.sin(x)
  # ..
  end
  def Trig.cos(x)
  # ..
  end
end

我們可以定義一個函數(shù)名相同,但在不同的功能模塊:

#!/usr/bin/ruby

# Module defined in moral.rb file

module Moral
  VERY_BAD = 0
  BAD = 1
  def Moral.sin(badness)
  # ...
  end
end

和類的方法一樣,當在一個模塊中定義的方法,指定模塊名稱后面跟著一個點,那么該方法的名稱。
Ruby require 語句:

require 語句聲明的是類似于 C/C++ 的 include語句 和 Java 的 import 語句。如果有第三個程序要使用任何定義的模塊,它可以簡單地使用Ruby require 語句加載的模塊文件:
語法:

require filename

在這里,它不是必需的  .rb 文件名擴展。
例如:

require 'trig.rb'
require 'moral'

y = Trig.sin(Trig::PI/4)
wrongdoing = Moral.sin(Moral::VERY_BAD)

重要: 在這里,這兩個文件都包含相同的函數(shù)名。因此,這將導致在代碼中的歧義,同時包括在調用程序,但的模塊避免這個代碼模糊,我們能夠調用適當?shù)墓δ苣K的名稱。
Ruby include 語句:

可以嵌入在一個類模塊。要在一個類中嵌入模塊,可以使用類中 include 語句:
語法:

include modulename

如果一個模塊被定義在單獨的文件,那么它需要包含該文件需要隱藏于公開的模塊在一個類的 require  語句之前。
例子:

考慮以下模塊寫在support.rb文件。

module Week
  FIRST_DAY = "Sunday"
  def Week.weeks_in_month
   puts "You have four weeks in a month"
  end
  def Week.weeks_in_year
   puts "You have 52 weeks in a year"
  end
end

現(xiàn)在,可以在如下一類包括這個模塊:

#!/usr/bin/ruby
require "support"

class Decade
include Week
  no_of_yrs=10
  def no_of_months
   puts Week::FIRST_DAY
   number=10*12
   puts number
  end
end
d1=Decade.new
puts Week::FIRST_DAY
Week.weeks_in_month
Week.weeks_in_year
d1.no_of_months

這將產(chǎn)生以下結果:

Sunday
You have four weeks in a month
You have 52 weeks in a year
Sunday
120

Ruby中混合類型:

通過本節(jié)之前,假設有面向對象的概念和知識。

當一個類可以從多個父類繼承的特點,類應該顯示多重繼承。

Ruby沒有直接中suppoprt多繼承,但Ruby的模塊有另一個精彩使用。他們幾乎消除多重繼承的需要,提供了一個工廠稱為混入。

混合類型給一個精彩的控制方式增加功能類。在代碼中混合類,使用它的代碼能進行進行交互。

讓我們來看看下面的示例代碼來獲得混合類型了解:

module A
  def a1
  end
  def a2
  end
end
module B
  def b1
  end
  def b2
  end
end

class Sample
include A
include B
  def s1
  end
end

samp=Sample.new
samp.a1
samp.a2
samp.b1
samp.b2
samp.s1

模塊A包括一種方法,a1和a2。模塊B包括一種方法,b1和b2。類示例包括兩個模塊A和B類的樣品可以訪問所有四種方法,即a1, a2, b1 或 b2。因此,可以看到這個類繼承自兩個模塊樣品。因此,可以說類的示例顯示了多重繼承或混入。

相關文章

  • Ruby語言建立Web服務器的過程詳解

    Ruby語言建立Web服務器的過程詳解

    這次選擇的Web服務器是Nginx,Nginx非常適合處理靜態(tài)資源,如圖片、CSS和JS文件,通過減輕應用服務器的負擔,Nginx使得Ruby?on?Rails應用能夠更高效地運行,這篇文章主要介紹了Ruby語言建立Web服務器,需要的朋友可以參考下
    2024-06-06
  • Ruby使用Mysql2連接操作MySQL

    Ruby使用Mysql2連接操作MySQL

    這篇文章主要介紹了Ruby使用Mysql2連接操作MySQL,需要的朋友可以參考下
    2022-04-04
  • Ubuntu上配置Ruby on Rails框架及RubyMine IDE開發(fā)環(huán)境

    Ubuntu上配置Ruby on Rails框架及RubyMine IDE開發(fā)環(huán)境

    Ruby on Rails是Ruby世界中當仁不讓的Web框架代表,甚至可以說Rails推動了Ruby的流行,這里我們就來看一下如何在Ubuntu上配置Ruby on Rails框架及RubyMine IDE開發(fā)環(huán)境
    2016-07-07
  • ruby 去掉文件里重復的行

    ruby 去掉文件里重復的行

    以前合并后臺字典時,有重復的都是用vbs去,最近又看了一天的ruby,想起來寫一下,沒想到代碼如此精簡
    2009-04-04
  • 詳解Ruby中的instance_eval方法及其與class_eval的對比

    詳解Ruby中的instance_eval方法及其與class_eval的對比

    Ruby的eval族方法將字符串作為代碼來執(zhí)行,instance_eval方法便是其中之一,下面就來詳解Ruby中的instance_eval方法及其與class_eval的對比
    2016-05-05
  • 在博客中屏蔽垃圾留言的簡單方法

    在博客中屏蔽垃圾留言的簡單方法

    這篇文章主要介紹了在博客中屏蔽垃圾留言的簡單方法,作者以Ruby on Rails搭建的博客應用為例,需要的朋友可以參考下
    2015-08-08
  • Ruby中任務構建工具rake的入門學習教程

    Ruby中任務構建工具rake的入門學習教程

    這篇文章主要介紹了Ruby中任務構建工具rake的入門學習教程,講解了包括命名空間和默認任務的執(zhí)行等基礎知識,需要的朋友可以參考下
    2016-03-03
  • RUBY 新手教程 跟我一起學ruby

    RUBY 新手教程 跟我一起學ruby

    從今天起我就要開始學Ruby了。怎么樣,沒見吧?一個新人寫教程。就憑我堅強的毅力,科學的自學方法,以及我的鉆研精神,我有信心學通Ruby,而同樣是新手的你也可以!
    2011-01-01
  • 關于Ruby on Rails路由配置的一些建議

    關于Ruby on Rails路由配置的一些建議

    這篇文章主要介紹了關于Ruby on Rails路由配置的一些建議,作者提出了相關代碼編寫時一些值得注意的地方,需要的朋友可以參考下
    2015-08-08
  • 收集的多個ruby遍歷文件夾代碼實例

    收集的多個ruby遍歷文件夾代碼實例

    這篇文章主要介紹了收集的多個ruby遍歷文件夾代碼實例,本文總結了4個代碼片段,小編推薦最后一個方法,因為它很簡潔優(yōu)雅,需要的朋友可以參考下
    2015-05-05

最新評論

永福县| 亳州市| 汝城县| 彭山县| 建瓯市| 图木舒克市| 光泽县| 岑巩县| 沈阳市| 蕉岭县| 桐梓县| 剑阁县| 定西市| 长阳| 新闻| 湾仔区| 玉溪市| 南澳县| 桐柏县| 和林格尔县| 舟山市| 平顺县| 宁南县| 松溪县| 乌拉特中旗| 惠水县| 杭锦后旗| 延安市| 罗田县| 和硕县| 齐河县| 阿尔山市| 阿克| 明水县| 合川市| 镇安县| 秦皇岛市| 闽侯县| 苍山县| 莱芜市| 明溪县|