第2章 プロになるRuby入門

この章で学ぶこと

  • 文字列
  • 数値
  • 真偽値と条件分岐
  • メソッドの定義

学んだことメモ

   ~文字列~

  • FizzBuzz問題できないとプログラマ失格らしい
  • Rubyは、nil正規表現など全てがオブジェクト。to_sメソッドを使って証明してた。
  • 変数やメソッド、クラスなどに付ける名前を識別子という。
  • あらかじめ使用用途の決まっている予約語があるので、自分で定義できない識別しがある。def and とかはできない。
  • リテラル:文字通りという意味で、変数の対義語である。数値、文字列、配列、ハッシュ、正規表現などがある。
  • 変数を宣言するには、何かしらのリテラルが必要。
  • 変数名はキャメルケースではなく、スネークケースで書くべきらしい
  • 特殊文字(\n, \r, \t)は、ダブルクオートで囲む。式展開も。
  • シングルクオートだと式展開されぬ。
  • +演算子でもかけるけど、式展開のほうが見やすいのでrubyではなるべく式展開を使用

     ~真偽値と条件分岐~

  • データのあるなしで条件分岐したい時にrubyだと楽。if data != nil をif dataとかける。このように書いても大丈夫な理由は、nilも偽に含まれているから。
  • Rubyのif文は最後に評価された式を戻り値として返す。この戻り値をリテラルとして変数に代入するみたいな書き方もできる。一般的かどうかは知らぬ。
  • Rubyは最後に評価された式がメソッドの返り値になるので、returnはいらない。
  • returnを使うのは、メソッドの途中で脱出する場合
  • 引数のないメソッドは、def ~~~ でカッコは省略するとよい
  • 複数の条件を指定する場合は、if+elsifを重ねるよりcase+whenで書いた方がシンプル
  • 変数 = 三項演算子( 式 ? 真の場合の処理:偽の場合の処理 )

     ~その他~

  • p56デフォルト付き引数
  • メソッドを?で終わらせたら、真偽値を返す
  • メソッドを!で終わらせたら、変数の中身変わる!破壊的メソッド
  • P59 ガベージコレクション(理解できんかった)
  • 同じ機能(実装)で、名前だけ異なるメソッドをエイリアスメソッドと呼ぶ
  • Rubyでは他の言語では文と見なされている要素が式になっていることが多い
  • 値を返すものを式、値を返さないものを文とすると、if文はif式、メソッドの定義の構文も定義式と読んだ方が実態が掴める。
  • 擬似変数は文法上、変数のように見えるが、代入するとエラーになる。nil, true, false, self, __FILE__, __LINE__, __ENCODING__
  • a = b なら、aとbは、同じオブジェクトID(この参照という概念は意外と重要)
  •  理由:オブジェクトの状態が変わると、そのオブジェクトを参照している変数全てに影響を与える
  • 組み込みライブラリ、標準ライブラリ、gem、の違い。インストールが必要?reqireが必要?で考える
  • puts(改行あり), print(改行なし)→ユーザー向け→使い分ける日がくるらしい
  • p→開発者向け(デバック用)