2006-11-14
[Ruby]Rubyを観察してみる
require
require ってなに?組み込み関数だって。組み込み関数って何?Kernel モジュールで定義されているメソッドか。
メソッドなんだ。じゃあこんな事できるの?
ruby -e 'p require("pp")' #=> true
できた。
じゃあ再定義できるの?
ruby -e 'def require a; end; p require("pp")' #=> nil
できた。こんなことも知らなかったの?
うん。
def
def ってなに?さすがにこれはメソッドじゃないよね?
うんメソッドではないな。予約語かあ。予約語って何だ?
BEGIN class ensure nil self when END def false not super while alias defined? for or then yield and do if redo true begin else in rescue undef break elsif module retry unless case end next return until
Rubyスクリプトに登場するキーワードの種別をカテゴライズしてゆけばなにかわかりそうだ。それっぽいものを思いつきで列挙してみよう。
- 予約語
- 変数
- リテラル
- コメント
- メソッド
- .
- =
- == > とか。比較演算子
うーん、他になにかあるかな。
- クラス名、モジュール名
- ::
- ,
- ()
- {}
include もメソッドなんだあ。
- && || and or
- シンボル
- each {|e| の |
- + - * /
- def a(*args) の * とメソッド呼び出しで使う *
ぱっと思いつくのはこんなもんかな。
字句構造っていうのかな。なんか無駄に列挙した気がする。たぶんスクリプトをパースするときにどう解釈するかって話だよなあ。
--
今日ほど『オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル』がわかりやすいと思ったことはない。これとか。
http://blade.nagaokaut.ac.jp/ruby/man/ruby-man-1.4-jp/syntax.html
てゆーかさあ、いままで読んでなかったの?
うん。なんとなくカンでやってた。リファレンス読むと眠くなるし。