我已经尝试过使用send
方法,但最终几乎无法读取并且只要前面的代码。在Ruby中有一种简单的方法可以像这样重构代码吗?
def insert_before(data)
node = Node.new(data)
node.next = self
node.prev = @prev
@prev.next = node unless @prev.nil?
@prev = node
end
def insert_after(data)
node = Node.new(data)
node.prev = self
node.next = @next
@next.prev = node unless @next.nil?
@next = node
end
答案 0 :(得分:1)
我认为你拥有的很好,但你可能想把这两种方法的常用位放在一个单独的方法中。
def insert_before(data)
node = insert_node(data, self, @prev)
@prev.next = node unless @prev.nil?
@prev = node
end
def insert_after(data)
node = insert_node(data, @next, self)
@next.prev = node unless @next.nil?
@next = node
end
def insert_node(data, from, to)
node = Node.new(data)
node.next = to
node.prev = from
node
end