1
1.9.3-p286 :039 > (0...x.right.first.chem_species.size).each do |atom|
1.9.3-p286 :040 >     puts x.right.first.chem_species[atom]
1.9.3-p286 :041?>   end
H
2
O
1
 => 0...2 
1.9.3-p286 :042 > x.right.first.chem_species[0]
 => ["H", 2] 
1.9.3-p286 :043 > 

なぜputs出力 ["H",2]をしてから["O",1]。(2番目のメソッドが戻るとき)。これは正しくないようです

4

2 に答える 2

2

細かいマニュアルから:

puts(obj、...)→nil

に相当

$stdout.puts(obj, ...)

そしてのためにIO.puts

puts(obj、...)→nil

[...]配列引数を指定して呼び出された場合、各要素を新しい行に書き込みます。

したがって、puts [1,2]印刷して改行で区切ります12

これを行うとき:

1.9.3-p286 :042 > x.right.first.chem_species[0]
 => ["H", 2] 

irb配列を表示させ、出力を生成するためにirb使用します。inspect['H', 2].inspect["H", 2]

于 2013-02-17T04:53:45.033 に答える
0

次のようになります。

(0 ... x.right.first.chem_species.size).each do | atom |
  x.right.first.chem_species[atom]を置きます
終わり

より明確に次のように書くことができます:

x.right.first.chem_species.each do | atom |
  アトムを置きます
終わり
于 2013-02-17T05:33:48.627 に答える