ruby的require路径问题

ruby1.9删除当前目录功能,require "Action.rb"不行、

用下面2种方式:

require_relative "trig.rb"  .rb可以省略,虽然首字母大小写都可以,但用大写。
require ".Action.rb"


module中的实例变量因为不可以创建对象实例,但有一个非常有用的作用,即通过模块使用叫做混合插入(mixin)的机制实现了多重继承。
Ruby的include语句只是创建了一个指向一个有名字的模块的引用,如果这个模块在一个独立的文件中,那么你必须先用require将这个文件引入,然后才能使用include。第二,Ruby的include不是简单的将模块的实例方法拷贝到类里面,而是建立一个从类到模块的引用。如果很多个类都包含了同一个模块,它们都指向同一样东西。如果你修改了模块中一个方法的定义,即使你的程序还在运行之中,你的类也能使用新的方法的行为[ 注意,我们这里说的是实例方法,实例变量永远都是每个对象都有一份拷贝]
require_relative  "Trig.rb"
class Test1
 include Trig
end
t=Test1.new.instance

module Trig
  @af=1234
  PI=3.14159
  def instance
    puts "模块的实例方法"
  end
  def Trig.sin(x)
    puts "trig的sin方法"
  end
  def Trig.cos(x)
    puts "trig的cos方法"
  end
end

class Test1
 include Trig
end
t=Test1.new.instance

猜你喜欢

转载自www.cnblogs.com/fpcbk/p/10819559.html