Ruby全局变量替代

时间:2013-01-06 06:13:39

标签: ruby global-variables

我知道永远不应该使用全局变量但是现在它是我唯一能够工作的东西。所以我在寻找替代品。我想要做的是将类@array中方法two中的New传递给方法one。我能够实现这一目标的唯一方法是使用$array

module Test::Abc
  class << self
    def one
      ....
    end

    class New
      def two
        @array=[]
      end
    end
  end
end

以下是我为获得所需结果所做的工作......

module Test::Abc
  class << self
    def one(array)
      ....
    end
  end

  class New
    def two
      @array=[]
      array=@array
      Test::Abc::one(array)
    end
  end
end

2 个答案:

答案 0 :(得分:1)

以下是我提出的解决方案......

module Test::Abc
  class << self
    def one(array)
      ....
    end
  end

  class New
    def two
      @array=[]
      array=@array
      Test::Abc::one(array)
    end
  end
end

答案 1 :(得分:0)

除了你的回答,这也应该有效(稍作修改):

module Test::Abc
  class << self
    def one(array)
      ....
    end
  end

  class New
    def two
      @array=[]
      Test::Abc::one(@array)
    end
  end
end