連載
» 2014年03月27日 18時00分 公開

Ruby 2.1の基本構文/基本文法まとめ&Pryの使い方若手エンジニア/初心者のためのRuby 2.1入門(2)(4/7 ページ)

[著:麻田優真、監修:山根剛司,株式会社アジャイルウェア]

Rubyの算術演算子とビット演算子

 プログラムは、式を並べることによって構成されています。ここでは、Rubyを構成する式と演算子について説明します。

 Rubyの代表的な演算子は、C言語に影響を受けた言語とほぼ同様です。以下に、代表的な演算子の一覧を示します。

表2 Rubyの算術演算子
演算子 意味
+ +x 単項のプラス
+ x + y 加算
- -x 単項のマイナス
- x - y 減算
* x * y 乗算
/ x / y 除算
% x % y 除算の余り
** x ** y xのy乗
表3 Rubyのビット演算子
演算子 意味
& x & y ビットごとのAND
| x | y ビットごとのOR
^ x ^ y ビットごとのXOR
~ ~x ビットごとのNOT
<< x << y xをy回左シフト
>> x >> y xをy回右シフト

 ただし、Rubyでは演算子は単なるメソッドであり、再定義可能なので演算対象のオブジェクトによって振る舞いが変わることに注意してください。

Rubyにおける変数の代入

基本形

 他言語の経験があれば、基本形の代入は直感的に理解できるでしょう。戻り値は代入したオブジェクトそのものです。以下に例を挙げます。

[1] pry(main)> teapot = "tea"
 => "tea"

 Rubyの変数は動的な型付けを行うため、後から別の型を持つオブジェクトを代入することもできます。以下のサンプルコードは、変数「teapot」に文字列を代入し、後から整数を代入する例です。

[2] pry(main)> teapot = "tea"
 => "tea"
[3] pry(main)> teapot = 42
 => 42
[4] pry(main)> teapot
 => 42

多重代入

 Rubyでは、一度に複数の変数にオブジェクトを代入できます。多重代入の戻り値は配列です。

[1] pry(main)> x, y, z = 1, 2, 3
 => [1, 2, 3]
[2] pry(main)> x
 => 1 
[3] pry(main)> y
 => 2 
[4] pry(main)> z
 => 3

 左辺の要素の数よりも、右辺の要素の数の方が多い場合は、余った右辺の要素は代入されません。

[5] pry(main)> x, y = 1, 2, 3
 => [1, 2, 3] 
[6] pry(main)> x
 => 1 
[7] pry(main)> y
 => 2

 また、右辺の要素の数の方が少ない場合は、対応する右辺の要素の無い左辺の要素に「nil」が代入されます。「nil」はC#やJavaにおける「null」のようなもので、「何も無い」ことを表すオブジェクトです。

[8] pry(main)> x, y, z = 1, 2
 => [1, 2] 
[9] pry(main)> x
 => 1 
[10] pry(main)> > y
 => 2 
[11] pry(main)> > z
 => nil

 右辺に配列を使うこともできます(配列については次回解説します)。

[12] pry(main)> x, y = [1, 2]
 => [1, 2] 
[13] pry(main)> x
 => 1 
[14] pry(main)> > y
 => 2

自己代入

 Rubyには、あるオブジェクトに演算子を適用した結果を、そのままそのオブジェクトに代入する自己代入という仕組みがあります。以下に、加算の結果を自己代入する例を示します。「x」に41を代入し、その後、「x」に1を加算した結果をそのまま`x`に代入しています。

[1] pry(main)> x = 41
 => 41
[2] pry(main)> x += 1
 => 42

 自己代入に使える演算子として、`+`以外にも以下のようなものがあります。

    +    -    *     /     %     **    &
    |    ^    <<    >>    &&    ||    

 C言語に影響を受けた言語と違い、Rubyにはインクリメント演算子「++」やデクリメント演算子「--」が無いので、自己代入を使うようにしてください。

Rubyの条件分岐とループ(繰り返し)

 次ページからは、条件分岐と繰りループ(繰り返し)について説明します。複数の行にまたがる例が多くなるので、ここからはpryを使わず、お好みのエディターでスクリプトを書き、「ruby」コマンドで実行するスタイルをお勧めします。作成したスクリプトを実行する場合は、以下のようなコマンドを実行します。

$ ruby hoge.rb

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。