ProgII/プログラミング演習II?

ここでは、質問の中で特に全員に補足しておいた方が良いと思われる事項について補足説明をします。

  • 文字列の連結など長くなった式を途中で改行する際の注意(2008/2/24)
    • たとえば、「x = a + b + c + d + e」(a〜eは文字列とします)のような式をプログラム中で書くと、行が長くなってプログラムが見にくくなることがあります。このような場合、途中で明示的に改行を入れて見やすくすると思います。しかしながら、例えば次のように改行すると、
             x = a + b + c
               + d + e
      NoMethodError?: undefined method `+@' for …:String」のようなエラーが生じることがあります。これは、rubyの処理系が1行目で式が完結して、2行目が別の式だと解釈してしまうために起こります。このエラーを回避するためには、改行する際に「+」を1行目の行末に残す必要があります。すなわち上の例なら、
             x = a + b + c +
                 d + e
      のように書くということになります。こう書けば1行目の行末にある「+」の続きが次の行にあるはずだということが明確になるわけです。もう一つの方法としては、1行目の行末に「\」を書くという方法もあります。また、次のように式を2つに分けるという方法もあります。
           x = a + b + c
           x = x + d + e
      以上のような問題に遭遇した場合は、自分にとってわかりやすく、かつ見やすい書き方を選びましょう。なお、「+」でなくても長い式を途中で改行するときは同様の注意が必要です。メソッドの引数に括弧を付けるということも、この手の問題を起こりにくくすることにつながります。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-02-25 (月) 09:44:09 (5281d)