リテラル - Ruby 技術者認定試験改訂対策 #2

Ruby 技術者認定試験制度の改訂により Ruby のバージョンが 1.8 から 2.1 になったので、その変更点を試験対策の観点で Ruby 技術者認定試験改訂のお知らせを参考にしつつまとめていきます。第2回はリテラルについてです。

概要

Ruby 1.9 でハッシュリテラルに変更がありました。また、Ruby 2.1 で有理数リテラルと複素数リテラルが追加になりました。

混乱するようなリテラルの変更ではないので自然に覚えられると思います。

ハッシュ

Ruby 1.9 で下記のような新しい表記のハッシュリテラルが追加されました。この表現は普段から目にすることも多いので知っている人がほとんどだと思います。

{ a: 1, b: 2, c: 3 } # => {:a=>1, :b=>2, :c=>3}

シンボルをキーとするハッシュが簡単に書けるようになりました。

逆に下記のような書き方はできなくなりました。

{ :a, 1, :b, 2, :c, 3 } # => SyntaxError

有理数

Ruby 2.1 で下記のような有理数リテラルが追加されました。Rational クラスのインスタンスが生成されます。

1r # => (1/1)
1 / 2r # => (1/2)
1r.class # => Rational

接尾辞として r を付与した数値が有理数リテラルになります。

複素数

Ruby 2.1 で下記のような複素数リテラルが追加されました。Complex クラスのインスタンスが生成されます。

1i # => (0+1i)
1 + 2i # => (1+2i)
1i.class # => Complex

接尾辞として i を付与した数値が複素数リテラルになります。

虚数部が有理数の複素数

Ruby 2.1 で虚数部が有理数の複素数を表現するためのリテラルも追加されました。Complex クラスのインスタンスが生成されます。

1ri # => (0+(2/1)*i)
1ri.class # => Complex

接尾辞として ri を付与した数値が虚数部が有理数の複素数を表現するためのリテラルになります。r と i の順番が逆だと SyntaxError になるので注意してください。


Ruby 1.9 と Ruby 2.1 で追加・変更があったリテラルについて説明しました。抵抗なく自然に理解できる追加・変更だと思います。

次回はキーワード引数について説明します。

参考文献

関連記事