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
Esto es un eigenclass. Esta pregunta se ha hecho antes .