是否可以从Ruby文件返回最后一个评估对象?
假设我有一个类似的文件:
<?php
header( 'Content-type: text/html; charset=utf-8' );
for( $i = 0 ; $i < 10 ; $i++ ){
echo $i . '<br>';
flush();
ob_flush();
sleep(1);
}
然后,我会期待这样的行为:
# app.rb
def foo
"Hello, world!"
end
foo
我们获取所需文件的最后一个评估对象,而不是# other_file.rb
require_relative!('foo') # => "Hello, world!"
&#39; require_relative
返回的值。
有没有办法让true
一样的行为?
答案 0 :(得分:1)
这听起来像是一种不好的做法。 Ruby文件是ruby代码的存储,而不是数据。
惯用法你应该用类或模块创建一个Ruby文件,需要它并从中调用一些函数。
# foo.rb
module Foo
extend self
def foo
"bar"
end
end
# irb
require 'foo'
Foo.foo
#=> bar
否则,正如@sawa所提到的,你应该把文件作为字符串读取并评估它。哪个是惯用的错误。