Ruby:◇リテラル(?) ・・・ 【Ruby:8歩目】
◇リテラル(?)
おぉ、リテラル。通常「リテラル」とは、プログラム内に記述する
定数のことをいうのではなかったか? このRubyの指南書ではそれを
「ソースファイル中に直接記述されたオブジェクト」だと。説明して
いる。少し調べてみた。
Java では(Java言語仕様(第2版))
・リテラルとは、プリミティブ型、 String型、null型値のソース
コード表現
HITACHI(!)のIT用語辞典では
・プログラムのソースコード中に使用される定数のこと
他の用語辞典では
・プログラムのソースコードにおいて使用される、数値や文字列
を直接に記述した定数のことである。変数の対義語であり、変
更されないことを前提とした値
とある。
つまり
「変更できない」、直接「ソースコード内に書かれた」
「定数」 ってことですな。
さて、Rubyのリテラル。ちと 違うような・・・
+++++++++++++++++++++
・整数と小数
+++++++++++++++++++++
数値を単にソース中に書けば、それで数値オブジェクトが生成さ
れる。
-100 # 整数リテラル(負数)
リテラルで作り出した数値オブジェクトは、変数に代入できる、と。
b = -100
p a + b #=> 0
なんか、ただ、変数に数値を代入しているような気もするが・・・
classメソッドで、リテラルで作り出したオブジェクトのクラス型
がわかるってか。おぉ、確かにただの数値とは違うぞ。
p 0.5.class #=> Float
他にどんな数値リテラルがあるか
・浮動小数点数(1.2e とか)
・16進整数(0xff とか)
・2進整数(0b1011 とか)
・8進整数(0755 とか)
・範囲オブジェクト(1..7 とか)
+++++++++++++++++++++
・文字列
+++++++++++++++++++++
文字列リテラルからオブジェクトを生成するには
" や ' を使う
ということだ。
また、途中で抜ける場合は break で行う
'こんにちは' # 文字列リテラル
ふむふむ。なんとなくわかって来たぞ。元々 100 や 200という
ソース内で直接かかれる文字列に対して
Ruby では それを記述すること
(文字列であれば " や ' で囲んで記述すること)により
オブジェクトとしての実体を持ち、利用することができるようにな
る、とうこと、だな。つまりやはり「定数」ではあるのだ。
しかし、phpで定数といえば、別の定数格納用文字列に define
でセットするのとは少し扱いニュアンスが違うってことか。













