我不理解下面一段代码中的Sheep = Class.new
部分。
module Fence
Sheep = Class.new do
def speak
"Bah."
end
end
end
def call_sheep
Fence::Sheep.new.speak
end
究竟是做什么的?
答案 0 :(得分:9)
根据文件Class.new
使用给定的超类创建一个新的匿名(未命名)类(如果没有给出参数,则为
Object
。)
此外,
您可以通过将类对象赋值给常量来为类赋予名称。
Sheep
是常量,因此您的代码等同于:
module Fence
class Sheep
def speak
"Bah."
end
end
end
答案 1 :(得分:3)
Sheep = Class.new do
def speak
"Bah."
end
end
Class.new 是用于在Ruby上定义类的语法。以上代码类似如下:
class Sheep
def speak
"Bah."
end
end