tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

「初めての Ruby」一人勉強会4日目

Ruby をぼちぼち勉強しています。


教材はコレ↓
初めてのRuby


今日も第4章。文字列

これを読みつつ、つぶやいてみます。

以下、つぶやきメモ。

※1 今のところ、正直あまり Ruby は好きではありません。
※2 オイラがまともにそこそこ書ける言語は C#, Java(5.0より前), Perl です。言語の機能を語っているときはその辺との比較になっているはず
※3 Ruby はまだほとんど理解していないので、的外れでトンチンカンな批判してるかも
※4 コードはサンプルそのままのときと、オイラが勝手に変えてるときがあります

正規表現のマッチ (p.67 例4-11)
if /<a href="(.*?)"[ >]/ =~ str
  puts $1 + "へのリンクを発見"
end

変数の置き方を Perl と反対にするのが Ruby 流? ちなみに Perl でこれやったらマッチしなかった。

部分文字列 (p.70 例 4-12)
irb(main):001:0> days = <<EOS
irb(main):002:0" Sunday
irb(main):003:0" Monday
irb(main):004:0" Tuesday
irb(main):005:0" Wednesday
irb(main):006:0" Thursday
irb(main):007:0" Friday
irb(main):008:0" Saturday
irb(main):009:0" EOS
=> "Sunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\n"
irb(main):011:0> p days["Monday"]
"Monday"
=> nil
irb(main):014:0> p days[/^Sun.*$/]
"Sunday"
=> nil
irb(main):015:0> p days[3..7]
"day\nM"
=> nil

「p days[/^Sun.*$/]」みたいに、正規表現で部分文字列を当てれるってのは面白い。使い道はあんまり思い付かないけど...。

変更可能 (p.71 例4-13)
irb(main):001:0> a = "Monday"
=> "Monday"
irb(main):002:0> a["nday"] = "on"
=> "on"
irb(main):003:0> p a
"Moon"
=> nil

文字列は変更可能。C# とか Java とは違うのね。メソッドに渡したときとかに、「あれ?変更されてねぇぞ?」は無いかわりに、「うぉ、いつの間にか中身が違う」がありうるってわけね。気を付けるポイントかも。

いらない子じゃなかった(p.72 例4-15)

'<<' 演算子が出てきた。破壊的に加算するのね。StringBuffer の append みたいな感じかな。「いらない子」ではないのね。

% irb
irb(main):001:0> a = "str"
=> "str"
irb(main):002:0> a << "ing"
=> "string"
irb(main):003:0> puts a
string
=> nil


今日も最後まで行けなかった...残念。
4章の途中ですが、今日はおしまい。

明日に続く(多分)