上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Rubyのインストール方法

エントリーの順番が違う気もしますが、Rubyのインストール方法についてです。
まず、Mac OS Xの場合、最初からMacRubyがインストール済みなので、すぐ使うことが可能です。
試しに、「Finder」→「アプリケーション」→「ユーティリティ」→「ターミナル」を起動して、以下のコマンドを打ってみてください。

$ ruby -v


私のLeopard(snow Leopard)にはバージョン1.8.6がインストール済みでした。
「irb」と打てばirbモードが起動できるはずです。

Windowsの場合は、こちらからインストーラをダウンロードしてインストールすることで使えるようになります。
RubyInstaller for Windows
インストール後に「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」を起動して、同じようにコマンドを打ってみてください。
irbも利用可能になっているはずです。

このように、WindowsでもMacでも手軽にRubyを始めることができます。

ポリモルフィズムとdeleteメソッドの振る舞い

ポリモルフィズムとは「同じ名称のメソッドでも、オブジェクトによって異なる動きをすること」です。
sizeメソッドはString、Array、Hashなどのクラスで利用できますが、

String#size → 文字列のバイト数を返す
Array#size、Hash#size → 配列の要素数を返す


これは文字列や配列の意味を考えれば間違えにくいパターンですが、以下のようにオブジェクトによって破壊的メソッドになる時とならない時があるパターンは、混乱しますね。。

String#delete → 非破壊的メソッド(String#delete! → 破壊的メソッド)
Array#delete、Hash#delete → 破壊的メソッド


String#deleteが破壊的メソッドではない理由とかあるのでしょうか?

Rubyの変数と定数の付け方

Rubyには、ローカル変数、 インスタンス変数、 クラス変数、 グローバル変数、 定数があり、それぞれ命名規則があります。
Rubyリファレンスマニュアル:変数と定数

ローカル変数

アルファベット小文字または"_"で始まり、2文字目以降は英数または"_"


インスタンス変数

@で始まる


クラス変数

@@で始まる


グローバル変数

$で始まる


定数

アルファベット大文字で始まる


これらはRuby特有のルールですね。
このような命名規則があることで、プログラムを見た時に理解しやすいのはRubyの特徴ですね。

対話形式Ruby「irb」

Rubyでは「irb」(Interctive Rubyの略)という対話形式で処理を行うRubyを使うことができます。
これはRubyインストール後に「irb」で起動できます。
以下のように1行づつプログラムを記述していくのですが、ifやdef、classなど、複数行に渡る文でも、「end」と打つまでその文は評価されないようになっているので、普通にプログラムを組むことも出来ます。

$ irb
>> i=2
=> 2
>> if i==3
>> puts "i=3"
>> elsif i==2
>> puts "i=2"
>> else
?> puts "i<>3 and i<>2"
>> end
i=2 # endと入力した後にif文の評価結果が出力される



Rubyのちょっとした動作の確認時に手軽に利用できて便利な機能ですので、是非活用しましょう。
PHPにもこんな機能があったら便利なのですけどね。

Rubyのif判定文

PHPのif文はこうです。

if ($num == 3) {
 echo "3です¥n";
} else if ($num == 2) {
 echo "2です¥n";
} else
 echo "2,3以外です¥n";
}


Rubyのifはこうなります。

if (num == 3) then
 puts "3です"
elsif (num == 2) then
 puts "2です"
else
 puts "2,3以外です"
end


「if 〜 then」、Visual Basicのようですね。
Rubyでは「else if」は「elsif」になる点、注意が必要です。
「then」「(」「)」は省略してもOKですが、最後の「end」は省略できません。

あと、PHPで以下のように書くと「$iに1を代入したものが「真」の時」という意味になり、if文の中で数値が代入されてしまい、正常に判定できませんが、Rubyで同じように書くと警告がでます。

【PHP】
if ($i = 1) 〜 # 必ず「真」になる

【Ruby】
if i = 1 〜 # worning: found = in conditional, should be ==


Rubyのエラーはとても親切だと思うのです。
プロフィール

星羽(榎田)

Author:星羽(榎田)
PHPエンジニアがRuby、PHPなどをいじった時の備忘録

最新記事
最新コメント
最新トラックバック
カテゴリ
スポンサードリンク
検索フォーム
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。