您可以考虑像这样大致实现该Class#new方法与每个类的#initialize方法之间的关系:
class Class
def new
instance = allocate()
instance.initialize
return instance
end
end
class Foo
def initialize
# Do nothing
end
end
Run Code Online (Sandbox Code Playgroud)
您可以在不显式定义#initialize方法的情况下创建类,因为#initialize默认情况下该方法被定义为不执行任何操作,并且其返回值始终被忽略(无论您返回什么值)。
您传递给的参数Class#new总是直接以#initialize相同的顺序和格式传递给它们。例如:
class Class
def new (arg1, arg2, &block_arg)
instance = allocate()
instance.initialize(arg1, arg2, &block_arg)
return instance
end
end
class MyClass
def initialize (arg1, arg2, &block_arg)
# Do something with args
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |