diff --git a/cherry.txt b/cherry.txt index f855bc9..5b1529c 100644 --- a/cherry.txt +++ b/cherry.txt @@ -104,9 +104,30 @@ redo 繰り返し処理をやり直す:RPGの質問みたいなことができ 定義されていないキーワードを同時に受け取るにはアスタリスク2個の引数を最後に用意する 189ページまで - - - +## 3/21 +最後の引数がハッシュであればハッシュリテラルの{}を省略できる:楽だが運用に注意を要しそう +メソッドの第1引数にハッシュを渡そうとする場合は必ず()を付けてメソッドを呼び出す必要がある +ハッシュをto_aメソッドで配列に変換すると二次元配列になって返る +逆もできるがキーと値の組み合わせが配列に入った二次元配列になっている必要がある +h = Hash.new { 'hello' } : Hash.newとブロックを組み合わせてデフォルト値を返すことで破壊的変更の影響を避けられる +...引数を使うと通常の引数とキーワード引数をまとめて委譲できる:先頭のいくつかの引数を取り出すこともできる +%sでシンボルを作成できる。%iでシンボルの配列を作成できる +条件分岐内で直接変数に代入するテクニック(値が取得できれば真、できなければ偽) if currency = find_currencty(country) 処理 end +&.演算子を使ってメソッドを呼び出すとnilの場合はnil、nilでない場合はその結果が返ってくる +nilガード: limit ||= 10の形式でnilまたはfalseであれば10を代入するというような機能を持つ。nil以外の値を入れておきたいが書き換えられたくない場合に使う +trueならtrue、falseならfalseというような条件分岐を書く場合はエクスクラメーションマーク2個を使った真偽値の型変換が有効に使える +ここから第6章 +正規表現ってマジで苦手だ。これまでもなるべく避けて生きてきたがついにTAMESAREの時が来たらしい +「書籍を読んでいると思ったらWebページに誘導された……なにを言っているのかわからねえと思うが」になった +\d は1文字の半角数字を表す +文字の個数を限定するときは {n,m} や {n} というメタ文字を使う(量指定子) +{n,m} は「直前の文字が n 個以上、m 個以下」の意味を表す +また、 {n} とすれば「ちょうど n 文字」の意味になる +「AまたはBのいずれか1文字」表す場合は [AB] と書く +[a-z] と書くと、「aまたはbまたはcまたは・・・yまたはz」の意味になる。 +ただし、[-az] や [az-] のように、ハイフンが [ ] の最初、または最後に置かれると「ハイフン1文字」の意味に変わる。 +なので [-az] や [az-] は「aまたはzまたはハイフンのいずれか1文字」の意味になる。 +209ページまで