4
我不明白以下代码段中的Sheep = Class.new
部分。什么是“Class.new”?
module Fence
Sheep = Class.new do
def speak
"Bah."
end
end
end
def call_sheep
Fence::Sheep.new.speak
end
它到底在做什么?
我不明白以下代码段中的Sheep = Class.new
部分。什么是“Class.new”?
module Fence
Sheep = Class.new do
def speak
"Bah."
end
end
end
def call_sheep
Fence::Sheep.new.speak
end
它到底在做什么?
根据文档,Class.new
创建一个新的匿名(未命名)与给定的超类(或
Object
如果未指定参数)。
此外,
可以通过分配类对象,以恒定的给一个类的名称。
Sheep
是恒定的,所以你的代码就相当于:
module Fence
class Sheep
def speak
"Bah."
end
end
end
Sheep = Class.new do
def speak
"Bah."
end
end
Class.new是关于Ruby定义类的语法。以上代码是类似如下:
class Sheep
def speak
"Bah."
end
end
@Praveen_Shukla我已经将您的评论纳入问题。提问时请具体说明。 – Stefan
“Class.new”是另一种定义类的方法。 http://blog.rubybestpractices.com/posts/gregory/anonymous_class_hacks.html ---请在提问时更具体。 – Akshay
它取消引用常量'Class',将消息'new'发送给结果对象,并将结果赋给常量'Sheep'。你的问题真的不清楚。你需要哪些部分帮助?你知道发送的信息是什么吗?你明白常数是什么吗?你明白什么是任务吗? –