質問: 今回教えてほしいことが2つあります ``` moji=12345 moji.each_char {|c| print c, ' ' } ``` うえのコードでmoji=12345を 1 2 3 4 5 と一文字づつとりだすことはできたのですが これの{|c| print c, ' ' }の意味がよくわかりません 特に ' 'の意味が分かりません。なぜ' 'がないと作動しないのですか?・・・・1(解決しました) また 上のコードの結果で一文字づつ取り出した結果を計算するやり方はありますか?・・・・2 例えば先頭の文字から *1 *2 *3 *4 *5するようにして 結果 1 4 9 16 25 の結果を出してみたいです。 初心者なので複雑なものはまだできません。
回答: プログラムが間違っていますね。エラーになるはず。実行していないのでしょうか? ``` moji="12345" moji.each_char {|c| print c, ' ' } ``` と最初から文字列にするか、 ``` moji=12345 moji.to_s.each_char {|c| print c, ' ' } ``` と`to_s`で文字列に変換してから`each_char`します。 > > ' 'の意味が分かりません。 > > > 1文字の空白文字です。`print c, ' '`で、`c`の値と1文字の空白を出力します。 > > なぜ' 'がないと作動しないのですか? > > > 作動します。空白文字が出力されないだけです。 > > 上のコードの結果で一文字づつ取り出した結果を計算するやり方はありますか? > > > 文字列化したものを、`to_i`で数値(整数)に変換すると計算できるようになります。 `c.to_i`ですね。