クォートばかりだな
http://d.hatena.ne.jp/piyo2-moko/20080422#1208866102
font_table.each {|key, value| print '<font size="', value, '">', key, '</font><br>', "\n" }
たしかに「"」と「'」ばかりでわかりにくいな。俺ならこんな風には書かないが、解説しておこう。まず、printに6つの引数をつけている。
・ '<font size="' ・ value ・ '">' ・ key ・ '</font><br>' ・ "\n"
で、
'<font size="'
は
<font size="
という内容の文字列を表現している。同様に
'">'
は
">
という内容の文字列を表現している。Rubyの文法にもHTMLにも「"」が出てくるからわかりにくいよね。Rubyの文字列は「"」でくるんでも「'」でくるんでも作成できるよ。「"」でくるんだ文字列の場合は次の「"」までが文字列の内容になるので、中にそのまま「'」が書ける。逆に「'」でくるんだ文字列の場合は次の「'」までが文字列の内容になるので、中にそのまま「"」が書ける。
"\n"というのは改行文字を表している。「\n」は「"」でくるまないとだめ。「'」でくるんだら「\」と「n」の2文字に解釈されてしまう。「"」でくるむことで「\n」を改行文字だと解釈してくれる。
で、俺なら
puts "<font size=\"#{value}\">#{key}</font><br>"
か
puts %Q!<font size="#{value}">#{key}</font><br>!
と書くね。「#{〜}」は式展開といって、中にRubyの式(変数や計算式やメソッド)を書くとその結果を埋め込んでくれる。だから「#{value}」は変数valueの結果を埋め込んでくれる。式展開を使うと短く簡潔に書ける。めちゃくちゃ重要だからしっかり覚えておいてね。式展開は「"」でくるんだ文字列でないと使えないよ。
で、「"」でくるんだ文字列の中に「"」そのものを入れるときは「\"」と書かないとだめ。「\」を前置することで次の「"」が文字列の終わりという意味をなくしている。だから文字列の続きが書ける。そして、「<br>」の次の「"」で文字列が終わる。
もひとつ。「%Q!〜!」という形式でも文字列を書くことができる。「"」でくるんだ文字列同じで式展開などが使える。「%Q!〜!」の何が嬉しいかというと、中に「"」を入れた場合「\"」と書かなくていいから読みやすくなる。
まだちょっと難しいかなぁ?