variable for ruby class

for - ruby object



Clase de carriles<< auto (2)

Me gustaría entender qué class << self representa en el siguiente ejemplo.

module Utility class Options #:nodoc: class << self def parse(args) end end end end


esta

module Utility class Options #:nodoc: class << self # we are inside Options''s singleton class def parse(args) end end end end

es equivalente a:

module Utility class Options #:nodoc: def Options.parse(args) end end end

Un par de ejemplos para ayudarte a entender:

class A HELLO = ''world'' def self.foo puts "class method A::foo, HELLO #{HELLO}" end def A.bar puts "class method A::bar, HELLO #{HELLO}" end class << self HELLO = ''universe'' def zim puts "class method A::zim, HELLO #{HELLO}" end end end A.foo A.bar A.zim puts "A::HELLO #{A::HELLO}" # Output # class method A::foo, HELLO world # class method A::bar, HELLO world # class method A::zim, HELLO universe # A::HELLO world