1

ruby中有一个代码

Dir.glob("my_folder/*.rb").each { |r| require_relative r}

我几乎明白了,但我想确定为什么下面的代码不起作用

Dir.glob("my_folder/*.rb").each(&:require_relative)

由于错误NoMethodError: private method require_relative' called for "my_folder/one.rb":String

这是因为

Dir.glob("controllers/*.rb").each(&:require_relative)

等于

Dir.glob("controllers/*.rb").each{ |r| r.require_relative }

?

4

1 回答 1

2

你是对的,它相当于

 .each{ |r| r.require_relative}

& 调用to_proc一个对象,在这种情况下是一个符号,并Symbol实现它并创建一个新的 Proc,该 Proc 对该对象进行调用。

于 2013-01-12T11:13:19.993 回答