Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
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

てゆーかさあ、いままで読んでなかったの?

うん。なんとなくカンでやってた。リファレンス読むと眠くなるし。