計算機の学習メモ

この想像しがたい状況が成立する過程を、以下に詳述する。

初めてのRuby~1章~読了

1章読了しました。
プログラムの細かい話はまだ出てきませんが、俯瞰的にRubyのことが書いてあります。

・バージョン体系
 MAJOR.MINOR.TEENY(1.4.2)で表記される。
 MINORは偶数が安定版、奇数が開発版
 1.9では上記法則ではないので注意(2.0に備えたらしい)

・ライブラリの探し方
 ①専用文法はあるか
 ②組み込み関数はあるか
 ③組み込みクラスはあるか
 ④標準添付ライブラリはあるか
 ⑤標準外ライブラリはあるか

Bashでは組み込みか外部かで実行速度に大きな違いがあったが、Rubyでは実行速度にどれだけ差があるのか、慣れてきたら計測してみたい。

・コマンド
 irb :対話型。ちょっとしたコマンドの確認に便利。
 -rdebug :デバッガ制御。行ごとの実行などが行える。
 ri :英語のリファレンスが表示される。

メソッドの表記方法
 「Stringオブジェクトのインスタンスメソッドeach_byte」= String#each_byte
 「Timeクラスのクラスメソッド*now」= Time.now or Time::now
「::」ってなんだろうと思っていたら、こういう日本語の意味らしい。

・pメソッド
 デバッグ用の出力。
 デバッグ以外での使用は「お行儀が悪い」。

・特異メソッド
 特定のオブジェクトに属するメソッド

a,b = "str", "str"
def a.greet
  puts "I am the object #{self.object_id}"
end
a.greet  #このオブジェクトだけ使える
b.greet  #エラーになる

ところで、本文に

大部分の演算子メソッドシンタックスエラーです。

と書いてあるがなんのことだろう?
シンタックスシュガー = "同じ意味を持つけど別の書き方ができる構文のこと"
らしい。*1

つまりこんな感じの理解。

1.+ 1  #加算メソッドの引数「1」
1 + 1  #加算メソッドのシンタックスシュガー

確かに、シンタックスシュガーの方がわかりやすい。