0
Je suis un peu un Ruby Noob quand il s'agit de fonctionnalités plus avancées. Actuellement, je vis avec des objets Proc. Quelqu'un peut-il me dire ce qui ne va pas avec cet exemple de code?L'objet Ruby Proc en tant que variable de membre public ne fonctionne pas?
class Tester
@printer = Proc.new do |text|
puts text
end
attr_accessor :printer
end
t = Tester.new
t.printer.call("Hello!")
Il me donne l'erreur suivante:
Test.rb:10: undefined method `call' for nil:NilClass (NoMethodError)
Je ne vois pas immédiatement pourquoi il ne devrait pas fonctionner. Quelqu'un peut-il m'éclairer?
Informations supplémentaires: La variable @printer définie dans le code de StackedCrooked appartient à la classe Tester elle-même. En dehors des méthodes d'instance, tout code dans une définition de classe utilise la classe comme 'self' - donc si vous définissez une variable d'instance, vous définissez une variable d'instance de la classe (qui est une instance de Class) plutôt qu'une variable d'instance de toute instance particulière. – Chuck