私は Java と Ruby を学ぼうとしている長年の C の男です。控えめに言っても、それは謙虚な経験です。
私は次のクラスを持っています。
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 クラスを使用することです。それとも、これは頭がおかしいということですか?時間を割いていただける場合は、私のクラス定義および/または私がそれでやろうとしていることを調整するか、一般的に批判してください。どうもありがとうございました!