说到更高级的功能,我有点像RubyNoob。目前我正在使用proc对象。有人能告诉我这个代码示例有什么问题吗?
class Tester @printer = Proc.new do |text| puts text end attr_accessor :printer end t = Tester.new t.printer.call("Hello!")
它给出了以下错误:
Test.rb:10: undefined method `call' for nil:NilClass (NoMethodError)
我不明白为什么它不能工作。有人能启发我吗?
你没有设置 @printer 在班里 initialize 方法。这会起作用:
@printer
initialize
class Tester def initialize @printer = Proc.new { |t| puts t } end attr_accessor :printer end