まだ第3部をやってます(たのしいRuby)

気がついたらこの本の半分以上終わってた!この調子でがんばります。

メモ(主に復習用)

■第13章・Hashクラス

  • 配列はインデックスを用いて各要素にアクセスする。インデックスには数値しか使えない。/ハッシュではキーを利用する。キーにはどんなオブジェクトでも利用できる。
  • ハッシュの作り方
    • {キー => 値}を使う(「キー」と「値」のペアを並べて指定する。ペアとペアの区切りには「,」を使う)
    • Hash.newを使う(引数を与えた場合、その値がハッシュのデフォルト値になる。引数がないときはnilになる。)
  • storeメソッドは値の登録。fetchメソッドは値の取り出し。fetchメソッドはキーが登録されていない場合は例外を発生させる。
  • ハッシュを初期化するにはclearメソッドを使う。Hash.newと似ているけれども、同じハッシュを参照している場合は、気をつける必要がある。(メソッドは変数に対してでなく、変数が参照しているオブジェクトに対して操作を行うので。)

■第14章・正規表現Regexp)クラス

  • Ruby正規表現Perl正規表現とほぼ同じ機能が実現されているうえに、日本語でよく使われる文字コードにも対応しているという高機能なものとなっている」そうです。
  • 「^」は行頭とマッチするパターン、「$」は行末とマッチするパターン。
  • マッチさせたい文字の範囲を指定したい時は、マッチさせたい文字の集合を[ ]を囲む。単なる文字としての「-」を表したいときは最初か最後にかかなければならない。「[ ]」の中で「^」を使うと「指定されたもの以外の文字」を表す。
    • [ABC]AまたはBまたはC
    • [A-Z]アルファベットの大文字全部
    • [a-z]アルファベットの小文字全部
    • [0-9]数字全部
    • [A-Za-z]AからZまでと、aからzまでのアルファベット全部
    • [A-Za-z_]アルファベット全部と「_」
    • [A-Za-z0-9_-]アルファベット全部と数字全部と「_」と「-」
    • [^A-Za-z]アルファベット以外の文字
  • 「.」(ドット)は任意の一文字とマッチするパターン。(例えば、「/^..$/」は2文字の行にマッチする。)
  • バックスラッシュを使ったパターン
    • 「\s」空白文字、「\d」数字、「\w」英数字、「\A」文字列の先頭、「\Z」文字列の末尾
    • 「\」のあとに「^」や「$」や「[」などのメタ文字を書くと、その文字そのものとしてマッチングできるようになる。
  • 繰り返し
    • 「*」0回以上の繰り返し。1個以上ある場合にも、1個もない場合にもマッチするパターン。
    • 「+」1回以上の繰り返し。1個以上ある場合にのみマッチするパターン。
    • 「?」0回または1回の繰り返し。0個か1個ある場合にのみマッチするパターン。
    • 「()」複数の文字列の繰り返しができる。
    • 「|」いくつかの候補の中からどれか1つに当てはまるものにマッチするパターン。

感想など

  • 今日は静かだったので、集中して勉強ができました。ハッシュと正規表現をやったのだけど、正規表現はなにかができそうな感じなのでおもしろそうだなぁと思った。