Ruby 学习(十一)模块Module

模块(Module)

基础


  • 定义了一个命名空间,相当于一个沙盒
  • 方法和常量不会与其他地方的方法常量冲突。

模块类似与类,但有以下不同:

  • 模块不能实例化
  • 模块没有子类
  • 模块只能被另一个模块定义

  • 模块常量命名与类常量命名类似,以大写字母开头。
  • 方法定义看起来也相似:模块方法定义与类方法定义类似。

语法

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

例子

module Trig
   # 定义常量
   PI = 3.141592654
   # 定义方法
   def Trig.sin(x)
   # ..
      puts "=== #{x}"
   end
end

# 访问模块内的常量
puts "#{Trig::PI}"
# 调用模块内的方法
puts "#{Trig.sin(200)}"

输出

3.141592654
=== 200

require 语句

  • require 语句来加载模块文件

语法

$LOAD_PATH << '.'

require filename
  • $LOAD_PATH: 用来指定模块的加载路径, .表示从当前目录查找
  • 使用 require_relative 来从一个相对目录引用文件。

例子

include 语句

在类中使用模块

语法

include modulename

例子

# 引入模块
$LOAD_PATH << '.'
require 'Trig.rb'

class MyPreson
# 引入模块
include Trig
    # 定义类方法
    def MyPreson.say_hello
        puts "== : #{Trig::PI}"
    end
end

# 调用类方法
MyPreson.say_hello

输出

== : 3.141592654
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值