8

メソッド内で呼び出しto_sています:

$  def my_function(num)
$    number = num.to_s.split(//)
$    puts number
$  end

$  my_function(233)
2
3
3
# => nil

関数内のように見えますが、出力が であるため、配列は作成されませんnilto_s.split(//)メソッド内で呼び出されたときに文字列の配列が作成されないのはなぜですか?

また、puts number各桁の出力がそれぞれの行にあるように見えるのはなぜですか? 関数内で明示的に配列を作成し、分割数を明示的にプッシュする必要がありますか?

4

3 に答える 3

3

最初のスニペットに表示される配列は、分割関数の評価の結果です。関数 : の外でこれを試してみるputs [1,2,3]と、結果が変わらないことがわかります。

printかわいくプリントしたいときに使います。

よろしくお願いします

于 2015-02-26T01:03:02.470 に答える