在ruby文件中执行一个方法

时间:2013-02-13 21:09:18

标签: ruby

我有这个虚拟ruby类文件(Bar.rb):

class Bar

   foo() # execute foo()

  def foo()
      puts "Hello world, "
  end
end

我用以下文件运行文件:

$ ruby Bar.rb

我希望在命令中看到“Hello,world”,但是出现了这个错误:

undefined local variable or method `foo' for Bar:Class (NameError)
    from bar.rb:3:in `<main>'

那么我该如何执行一个方法呢? Ruby是否有任何main方法(如Java或C / C ++)?

3 个答案:

答案 0 :(得分:1)

首先定义方法,然后调用它。 不需要主程序,将首先执行类或方法之外的第一个代码。脚本本身就是主要的。我相信对此有更好的定义,但我相信你会坚定不移。

def foo()
  puts "Hello world, "
end

foo() # execute

也不需要把它放在课堂上,然后你必须先发起她。

class Bar
  def foo()
      puts "Hello world, "
  end
end

bar = Bar.new
bar.foo

答案 1 :(得分:1)

您不需要任何课程,您可以直接从文件本身调用您喜欢的任何方法:

bar.rb:

puts "Hello, world!"

如果您想坚持使用代码,则在声明之前调用foo,这显然不起作用。

答案 2 :(得分:1)

这有几个原因,因为你写的不起作用。

  1. 在尝试调用foo之前,尚未声明方法foo。
  2. 方法foo,正如您所声明的那样,是一个实例方法。你没有在类的实例上调用它。
  3. 这样可行:

    class Bar
      def self.foo
      end
    
      foo
    end
    

    正如其他人所说,你可能不需要将它包装在一个类中。