文系派遣30代後半が未経験からエンジニアを目指すブログ

まさに崖っぷち。学んだこと、学びながら感じたことを綴るド素人ブログです。

【Ruby】TrueとFalseってルールで決まってるの?!

今回も備忘録。

 

TECH CAMPで、練習問題ってのがあって、基本的な問題を1日1問くらいずつ解いてるのですが、条件式の問題で本日のタイトルのTrueとFalseの扱いに困っちゃいました。

解説にもなく、メンターさんにチャットしてお尋ねしたのですが、多分当たり前のルール&私の聞き方が悪かったので、このルール前提でお話があり…

もしや、これはルールがあるのでは!と調べてみました。

 

例えば、

a=true

if a
  puts "True"
else
  puts "False"
end

のとき、なんて出力されるか?なんてことなんですけども。

 

イメージ的にはまぁ"True"なんですけども(笑)、でも条件って「もしa=〇〇のとき××」っていう、エクセル的な発想だったので、「え?これだけじゃ条件わかんないよ?」って超初心者は思ったわけです。

だって「if a」って、aに何代入されればTrueで、何以外ならFalseになるかわかんないでしょうよ、ってことです。

 

で、ちょちょっと調べてみまして、どうやらプログラミング言語にはそれぞれtrue/falseにルールがあると言うことがわかりまして。

結構言語によってはめんどくさそうな…

Rubyは簡単で、「false」「nil(何もないこと)」以外はtrueとして扱うと言うルールが存在しました。

 

なので、上の条件式に戻ると、

a=False
a=nil

以外でしたら、aに何入れてもtrueが出力されるってことです。

a=""

でもtrueになりました。

ルールとして存在してるんで、わざわざ書かなくても条件が成り立つってことなのですねー。

 

勉強になりました。