-1

rubyA と ruby​​B の 2 つの ruby​​ ファイルがあります。rubyB には 2 つのメソッドしか含まれていません

#rubyB.rb
def foo1()
   p "foo1 from rubyB"
end 
def foo2()
   foo1()
end 

と ruby​​A が含まれています

#rubyA.rb
require_relative 'rubyB.rb'
def foo1()
   p "foo1 from rubyA"
end
foo2()

出力は「rubyAからのfoo1」になります。foo2 は、他のファイルからではなく、自分のファイルから foo1 を呼び出すにはどうすればよいでしょうか?

4

3 に答える 3

2

あなたはそれを上書きしました!同じ「スコープ」に同じ名前のメソッドを 2 つ持つことはできません。

クラスまたはモジュールを使用して、メソッドのスコープを設定したい場合があります。

また、require_relative の動作は、必要なファイルのすべてのコードを必要な場所に配置するようなものです。したがって、基本的にこのファイルを持つのと同じです。

# require_relative 'rubyB.rb'

def foo1
   p "foo1 from rubyB"
end 
def foo2
   foo1
end 

def foo1
   p "foo1 from rubyA"
end
foo2
于 2013-09-22T16:02:27.823 に答える
1
#rubyB.rb
class B
  def self.foo1
   p "foo from B"
  end
  def self.foo2
    foo1
  end
end

#rubyA.rb
class A
  def self.foo1
    p "foo from A"
  end
  def self.foo2
    foo1
  end
end

#mycode.rb
require_relative 'rubyA'
require_relative 'rubyB'

B.foo2
于 2013-09-22T16:06:16.670 に答える