Rubyで文字列の配列に対して処理を行い、各要素の末尾に「.inc」を付与するプログラムを作成する際、よく使用されるメソッドに`map`があります。しかし、コマンドプロンプトで何も表示されない場合、どのようにプログラムが動作しているのかを理解することが大切です。この記事では、このプログラムの問題点と解決策について解説します。
問題のプログラムとその現象
質問のプログラムは以下の通りです。
%w(apple google facebook).map { |c| c + '.inc' }
このプログラムは、文字列の配列(`%w(apple google facebook)`)の各要素に「.inc」を付け加えようとしており、`map`メソッドを使用しています。しかし、コマンドプロンプトを実行しても何も表示されません。これは、`map`メソッドが新しい配列を返すものの、その結果を出力する処理がないためです。
Rubyでmapメソッドを使用する際のポイント
`map`メソッドは、配列の各要素に対してブロック内の処理を適用し、新しい配列を返すメソッドです。しかし、この新しい配列は変数に代入するか、表示する処理を追加しない限り、何も表示されません。
このプログラムを正しく表示するためには、`puts`メソッドを使って結果を出力する必要があります。例えば、次のように書き換えることで、各要素が表示されるようになります。
puts %w(apple google facebook).map { |c| c + '.inc' }
これにより、`apple.inc`、`google.inc`、`facebook.inc`が表示されるようになります。
mapメソッドの動作とその結果
`map`メソッドを使うことで、元の配列に変更を加えることなく、新しい配列を生成できます。このプログラムでは、`c + ‘.inc’`という処理が、各要素(`apple`、`google`、`facebook`)に対して適用され、新しい配列が作成されます。しかし、その結果を表示するためには、`puts`などで明示的に出力する必要があります。
まとめと解決策
Rubyで文字列の配列に対して処理を行い、新しい配列を表示するためには、`map`メソッドを使った後に、その結果を出力する処理を追加する必要があります。例えば、`puts`メソッドを使って新しい配列を表示することで、期待する結果を得ることができます。
このように、Rubyでは`map`メソッドが返す新しい配列を活用し、適切な方法で出力することで、簡単に目的を達成できます。プログラムを実行する際は、出力の方法にも注意を払いましょう。
コメント