有没有办法设置默认的初始化方法而不需要写下来?
class DataClass
attr_accessor :title, :description, :childs
def hasChilds?
@childs.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
我想用标准初始属性初始化此类。像这样的东西:
$> a = DataClass.new(:title => "adsf", :description => "test")
$> a.title # --> "asdf"
Run Code Online (Sandbox Code Playgroud)
有这样的解决办法吗?
一种选择是使用 aStruct作为类的基础。例如:
class DataClass < Struct.new(:title, :description, :childs)
def has_childs?
@childs.nil?
end
end
a = DataClass.new('adsf', 'description')
puts a.title
Run Code Online (Sandbox Code Playgroud)
现在参数的顺序很重要。