如何在ruby中自动为节点类生成setter和getter?我正在使用eclipse
class Node
def initialize(*args)
if args.size > 2 or args.size < 1
raise "initializer needs 0,1 or 2 arguments"
elseif args.size == 1
@data = args[0]
else
@data = args[0]
@next = args[1]
end
end
def to_s
end
end
Ruby惯用的方法是attr_accessor :data, :next
(另请参阅"什么是访问器?")
然后,只有当需要自定义行为时,才会添加重载/显式方法实现。Ruby不是Java;不需要向所有内容添加样板代码。
如果希望"无论如何都能看到代码",那么可以向Eclipse添加一个自定义模板。上面的attr_accessor
链接解释了这样一个模板应该如何模仿attr_*
行为。