Ruby的module(模块)
生活随笔
收集整理的這篇文章主要介紹了
Ruby的module(模块)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義模塊用module...end 。模塊與類非常相似,但是:模塊不可以有實例對象;模塊不可以有子類。#Module(模塊)
module?Module1
??def?sqrt(num,?rx=1,?e=1e-10)
????num*=1.0
????(num?-?rx*rx).abs?<e???rx?:?sqrt(num,?(num/rx?+?rx)/2,?e)
??end
end
puts?"Module?demo:"
include?Module1
puts?sqrt(456,?7,?0.01)?#21.3541565188558#Module(模塊)方法;模塊方法提供了一個途徑,在模塊的外部訪問模塊內部方法,無須 include 模塊。定義模塊常量不需要如此。module?Module2
??def?Module2.sayHello(*num)
????"Welcome?to?Ruby?world."
??end
??PI=3.14
end
puts?"Module?method:"
puts?Module2.sayHello
puts?Module2::PI?#3.14
puts?Math::PI?#3.141592653589793#模塊的第三個作用:實現了類似多重繼承的功能puts?"multiple?inheritance:"
class?Person
??def?talk
????puts?"I'm?talking."
??end
??#通過"include?模塊名?"?,一個類可以得到某個模塊的常量和方法,這里為了演示多繼承,我們把其放到子類
??#include?Module1
end
=begin
??person=Person.new
??person.talk???#?I'm?talking.
??puts?person.sqrt(20.7,3.3)?#?4.54972526643248
=end
class?Student?<?Person
??#通過"include?模塊名?"?,一個類可以得到某個模塊的常量和方法
??include?Module1
end
aStudent=Student.new
aStudent.talk?#?I'm?talking.
puts?aStudent.sqrt(20.7,3.3)?#?4.54972526643248#extend:給特定對象實例添加Moduleclass?StudentEx?
end
stuEx=StudentEx.new
stuEx.extend(Module1)
puts?stuEx.sqrt(20.7,3.3)?#?4.54972526643248
module?Module1
??def?sqrt(num,?rx=1,?e=1e-10)
????num*=1.0
????(num?-?rx*rx).abs?<e???rx?:?sqrt(num,?(num/rx?+?rx)/2,?e)
??end
end
puts?"Module?demo:"
include?Module1
puts?sqrt(456,?7,?0.01)?#21.3541565188558#Module(模塊)方法;模塊方法提供了一個途徑,在模塊的外部訪問模塊內部方法,無須 include 模塊。定義模塊常量不需要如此。module?Module2
??def?Module2.sayHello(*num)
????"Welcome?to?Ruby?world."
??end
??PI=3.14
end
puts?"Module?method:"
puts?Module2.sayHello
puts?Module2::PI?#3.14
puts?Math::PI?#3.141592653589793#模塊的第三個作用:實現了類似多重繼承的功能puts?"multiple?inheritance:"
class?Person
??def?talk
????puts?"I'm?talking."
??end
??#通過"include?模塊名?"?,一個類可以得到某個模塊的常量和方法,這里為了演示多繼承,我們把其放到子類
??#include?Module1
end
=begin
??person=Person.new
??person.talk???#?I'm?talking.
??puts?person.sqrt(20.7,3.3)?#?4.54972526643248
=end
class?Student?<?Person
??#通過"include?模塊名?"?,一個類可以得到某個模塊的常量和方法
??include?Module1
end
aStudent=Student.new
aStudent.talk?#?I'm?talking.
puts?aStudent.sqrt(20.7,3.3)?#?4.54972526643248#extend:給特定對象實例添加Moduleclass?StudentEx?
end
stuEx=StudentEx.new
stuEx.extend(Module1)
puts?stuEx.sqrt(20.7,3.3)?#?4.54972526643248
轉載于:https://www.cnblogs.com/jeriffe/archive/2012/01/31/2333032.html
總結
以上是生活随笔為你收集整理的Ruby的module(模块)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输入文字加下划线_Word中被很多职场人
- 下一篇: d-link路由器samba设置_d-l