【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に何入れてもtrueが出力されるってことです。
a=""
でもtrueになりました。
ルールとして存在してるんで、わざわざ書かなくても条件が成り立つってことなのですねー。
勉強になりました。