HTMLの出力
初歩的なことかもしれないけどちょうど同じようなことが
某掲示板に質問されていたので自分メモ。
これを引用しちゃっても大丈夫なのかなぁ?
883 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:01:23
しつもん。何か色々やって結果としてHTMLを吐き出すCGIを作ってます。
HTMLの一部を作るメソッドを書きました。その1:
def table
html = String.new
html << <
〜いろいろ〜
EOB
return html
endその2:
def table
return <
〜いろいろ〜
EOB
endどっちの癖をつけたほうが好ましいですか?
884 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:07:45
前者を選ぶメリットはあまりないと思う
CGIならhtmlに割り当てられるメモリももったいないし
885 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:08:52
よく見るのは後者。もっと言うとreturnもないことが多い。
886 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:16:31
後者(のreturnなし)はソース中に出てきてもイディオム的に理解できるよね
「あーこれは文字列作って返すだけなのね」みたいな値を返すときにしか使われないオブジェクトを明示的に作ることはしなくていいと思う
他人が見てもすんなり理解できる書き方の範疇、かつ、動作上大きな無駄も起きない書き方だと思うよ
こんなにシンプルでよかったのねorz
はじめテンプレライブラリとか試そうとして断念したあとにHTMLを直接吐くようにしたんだけど、
当時、出力したHTMLに ”" ”←ダブルクォーテーション が部分部分にはいってて謎だった。
こんな風に書いてた
<<"EOB" <table> "#{hoge}" </table> EOB
ついついダブルクォーテーションで囲んでしまってました(^^ゞ
今、たのしいRuby 第2版 Rubyではじめる気軽なプログラミングをよんだらP215にちゃんと書いてました。