我是一名 Java 和长期 C 人,试图学习 Ruby。至少可以说,这是一次令人羞愧的经历。
我有以下课程。
class Node
@@normal
def get_normal( n )
@@normal[ :#n ]
end
def add_normal( n, value )
@@normal[ :#{n} ] = value
end
end
...而且我正在尝试以一种只有 Java 人员才会使用的方式来使用它,但也许你可以让我直截了当。(在Java中我会:
class Node
{
private Map< String, String > normal = new HashMap< String, String >();
public void addToNormal( String key, String value ) { this.normal.put( key, value ); }
public String getNormal( String key ) { return this.normal.get( key ); }
}
...
Node node = new Node();
node.addToNormal( "city", "New Orleans" );
System.out.println( node.getNormal( "city" );
)
下面,我想我正试图摆脱“新奥尔良”,但它不起作用。(注意:我故意尝试使用 Ruby 符号而不是字符串作为键。)
irb(main):001:0> class Node
irb(main):002:1> @@normal
irb(main):003:1> def add_normal( n, value )
irb(main):004:2> @@normal[ :#{n} ] = value
irb(main):005:3* end
irb(main):006:3> def get_normal( n )
irb(main):007:4> @@normal[ :#n ]
irb(main):008:5* end
irb(main):009:5> end
irb(main):010:4> node = Node.new()
irb(main):011:4> node.add_normal( :city, "New Orleans" )
irb(main):012:4> puts node.get_normal
irb(main):013:4> puts node.get_normal()
简而言之,我没有得到任何东西。
我想使用 Ruby 符号作为哈希中的键,但我想学习的最重要的事情是以我使用上面的 Java 类的方式使用 Ruby 类。或者,这是错误的想法?如果你能抽出时间,请调整我的班级定义和/或我正在尝试用它做什么,或者一般批评。非常感谢你!