8/22

  • O/R マッピング(Object/Relational) : プログラミング言語のオブジェクトとリレーショナルデータベースの対応をとる
  • リレーショナルデータベース上の表現とオブジェクト指向言語におけるオブジェクトによる表現の違いをインピーダンス・ミスマッチという。
  • このインピーダンス・ミスマッチを解決することがO/Rマッピングフレームワーク
  • while exit do end
  • 変数には、その変数が使える範囲(スコープ)が決まっている。
  • 変数は””付けない
  • メソッド内ではメソッド内で定義した変数しか使えない
  • if文、while文は関係ない!whileの外で定義した変数も使える。
  • メソッドの外で定義した変数をメソッドの中で使えるようにするには引数を使う
  • 引数のポイント
  • ①引数はメソッドを呼び出す部分メソッドを定義している部分の両方に書く
  • ②メソッドを呼び出す部分に書く引数(本引数)とメソッドを定義している部分に書く引数(仮引数)の名前は一致している必要はない
  • 不自然に違うぐらいなら同じにした方がわかりやすいことは多々ある。
  • 配列オブジェクトとかもわ渡せる
  • def rename(name)
    name = "Mr.#{name}"
    end

    name = "Tanaka"
    rename(name)
    puts name → "Tanaka"になる

  • なぜか?
  • def rename(name)
    name = "Mr.#{name}"
    end

    name = "Tanaka"
    rename(name) →puts rename(name)にするとちゃんとMr.Tanakaになる。
    puts name  

  • 要するにただメソッドを呼び出しているだけで、ちゃんとrename(name)は、Mr.Tanakaになっているが、その返り値をnameに代入していなかったからMr がつかなかった。name = rename(name)にすればOK

  • 習慣化するには、平均で66日かかる。

  • 1..10 は、[1,2,3,4,5,6,7,8,9,10]と書くのと同じ
  • error_sample.rb:17: syntax error, unexpected end-of-input, expecting keyword_end

  • 下線部は、endの数がおかしいことを示している。
  • sample.rb の第 17行で,いきなりスクリプト(inputのこと)の終わりに来ちまったぜ。end を期待してたんだが。
  • エラーを検知した箇所の行を示しているだけであって、その行でendが抜け落ちているわけではない。