来自 Java,我正在尝试在 Ruby 中实现 LinkedList。我在 Java 中实现它的常用方法是有一个名为 LinkedList 的类和一个名为 Node 的私有内部类,LinkedList 的每个对象都作为 Node 对象。
class LinkedList
private
class Node
attr_accessor :val, :next
end
end
我不想将 Node 类暴露给外部世界。但是,通过 Ruby 中的此设置,我可以使用以下方法访问 LinkedList 类之外的私有 Node 类对象 -
node = LinkedList::Node.new
我知道,在 Ruby 1.9 中,我们可以使用 private_constant 方法将 Node 指定为私有常量。但我想知道这是否是实现这一目标的正确方法?另外,为什么我能够在 LinkedList 类之外创建 Node 对象,即使它被声明为私有?