Ruby には bool / boolean な真偽型が存在しないぽい。
nil と false 以外はすべて真。
疑似変数
通常の変数以外に疑似変数と呼ばれる特殊な変数があります。
self
現在のメソッドの実行主体
nil
NilClassクラスの唯一のインスタンス
true
TrueClassクラスの唯一のインスタンス。真の代表値
false
FalseClassクラスの唯一のインスタンス。nilとfalseは偽を表します。
__FILE__
現在のソースファイル名
フルパスとは限らないため、フルパスが必要な場合は File.expand_path(__FILE__) とする必要があります。
__LINE__
現在のソースファイル中の行番号
疑似変数の値を変更することはできません。擬似変数へ代入すると文法エラーになります。
変数と定数
true のクラス。 true は TrueClass クラスの唯一のインスタンスです。 true は真を表す代表のオブジェクトです。
class TrueClass
false のクラス。 false は FalseClass クラスの唯一のインスタンスです。 false は nil オブジェクトとともに偽を表し、その他の全てのオブジェクトは真です。
class FalseClass
nil のクラス。 nil は NilClass クラスの唯一のインスタンスです。 nil は false オブジェクトとともに偽を表し、その他の全てのオブジェクトは真です。
class NilClass
追記: 2014-11-26
Ruby では空文字列「""」や数値の「0」が真 (true) として扱われる。。。
Rubyにはブーリアン型が無く、false は FalseClassクラスのインスタンス、true は TrueClassクラスのインスタンスである。真偽値としては、false と nil 以外は全て真として扱われるので、空文字列や数値の 0 が偽として扱われる言語に慣れた者や移植の際は注意が必要である。
ブーリアン型 - Wikipedia
こういうサンプルコードを書いてみて、
a = 0
if a then
puts "0 => true"
else
puts "0 => false"
end
b= ""
if b then
puts "\"\" => true"
else
puts "\"\" => false"
end
実行したら、ほんとに「0」と「""」が true だった。。。
0 => true
"" => true
tags: ruby
Posted by NI-Lab. (@nilab)