2010年06月18日

Ruby 演算子

演算子とは?


+とか-とかです。

環境


ruby 1.8.6
irb

普通の+とか>とか説明してもなんなんで、
特殊という程でもないですが、普段使わないような演算子のご説明

ちょっと特殊な演算子


** : べき乗
$ irb
2 ** 3
=> 8

2 * 2 * 2ですね。

=== : 同値(case文の一致判定はこれを使用しています)
この===はくせ者で、普段は==と同じ働きをするのですが、
サブクラスなどで再定義されていると変わってしまうのです。
では、再定義はどこで?
Module : kind_of?を呼んでいる
Proc : callの別名
Range : include?を呼んでいる
Regexp : =~やmatchとほぼ同義
難しいです。

<=> : 大小比較
$ irb
1 <=> 2
=> -1
1 <=> 1
=> 0
2 <=> 1
=> 1

左が大きければ+1、右が大きければ-1、等しければ0となります。
Array.sortの仕組みもこの大小比較で行われています。

.. : 範囲演算子(範囲含む)
$ irb
i=0
1..3.times do
 puts i
 i += 1
end
=>0
1
2

3回ループしました。
1,2,3の配列の中身を取り出したりするのに使用したりしますね。

... : 範囲演算子(範囲含まない)
$ irb
i=0
1...3.times do
 puts i
 i += 1
end
=>0
1

2回ループしました。
..とは違い最後の1回は含まれない訳ですね。

? : : 条件演算子
三項演算子ともいますね。
言うなれば1行のif文ってところでしょうか。
$ irb
5 > 2 ? "真" : "偽"
=> "真"

?前の条件文にあてはまる場合:の左が実行され、偽の場合:の右が実行されます。

演算子の優先度


演算子には優先度が存在します。
まぁ数学の+より*のほうが先に計算するといったのと同じです。
演算子もだいたいそれにあてはまって、
+より* のほうが優先されます。
こまかく書くのも面倒なのですが、
** > * > + > <= > && > .. > = > and

こんな感じで覚えておけばいいかな?
posted by RicK at 14:46| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/39013647

この記事へのトラックバック