2006-11-25
■ プログラミングRuby(言語編)~第1章さあはじめよう。
実行環境インストール
まずは、Rubyのインストールから始まります。
私の環境には、すでに、バージョン1.8.4がインストール済み。
Rubyのドキュメント
ri メソッド名
ありゃ、1章終了。
■ プログラミングRuby(言語編)~第2章Ruby.new。
Rubyの基本
song1 = Song.new("enjoy Ruby!")
#簡単なプログラム。
ret = "Hello World " + name
return ret
puts say_hello("papanda")
コメントは、#で始める。
行末のセミコロンは不要。
メソッドを呼ぶ際の括弧は不要。
puts say_hello "papanda"
でも言いわけだ。
これが、最初の戸惑いだった。
Thomasさんも、単純なケースを除いて、括弧で囲むことを
お勧めしているので、安心してそれに従おう。
ダブルクォートで囲まれた文字列は以下のようなことが
できる。
これはもちろん、
papanda
と出力される。
ret = "Hello World #(name)"
return ret
という式の展開も行うことができる。
なお、最後の文が戻り値となるので、
"Hello World #(name)"
という書き方も許される。
Rubyの命名規則について。
配列とハッシュ
a = [1,'cat',nil]
という書き方。添え字は0はじまり。
a[0]は、1となる。
ハッシュは、
inst_section = {
'clarinet' => 'woodwind'
}
という書き方。
アクセスするには、
inst_section['cello']
となる。
文修飾子
puts "ten!"
は、
とも書ける。
yield
def call_back
yield
yield
結果は、
メソッドは自分に関連付けられたブロックを
yield文で呼び出すことができる。
■ プログラミングRuby(言語編)~第3章クラス、オブジェクト、変数
class Song
song=Song.new("papanda")
initializeというメソッドが必要。newされた時に呼ばれる。
class Song
という書き方ができる(!)
song.call
とすると
papanda
が出力される。
アクセスメソッドの作成。
class Song
attr_reader :name
attr_writer :name
song=Song.new("mimi")
song.name="papanda"
クラスメソッドの定義。
class Song
def Song.class_method
RubyでSingleton
class Demo
@@demo=nil
def Demo.create
@@demo = new unless @@demo
@@demo
アクセス制御
class Demo
protected
def demo2
public
def demo3
private
def demo4
もしくは
class Demo
def demo1
def demo2
def demo3
def demo4
public :demo1,demo3
protected :demo2
private :demo4
ポインタだらけ
panda1 = "mimi"
panda1 #=>"mimi"
panda2 = panda1
panda2 #=>"mimi"
panda1[0] = 'M'
panda1 #=>"Mimi"
panda2 #=>"Mimi"
まさにポインタ。
irb良いね
さくっと、コードの検証ができるから。