62
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby 当たり前のtrue/false

Posted at

基本中の基本のtrue/false

trueとfalseなんて基本中の基本だけど、立ち止まってメモしておきます。
ちゃんと理解しておけば少しだけ綺麗にコードが書けそう。

Rubyのtrue/false

ここで問題

次のうち「ok」と出力されるのはどれでしょう?

puts "ok" unless 0 
puts "ok" unless 1
puts "ok" unless nil
puts "ok" unless "false"

Rubyのtrue/falseって…

以下のURLにいろいろな言語のtrue/falseが掲載されています。
各言語におけるtrue/falseまとめ

いろんな言語があるけど、その中でRubyのtrue/falseはなんてシンプルなこと!
「false」と「nil」だけが false であとは全部 true

つまり、以下の条件分岐があったとして、

if hoge
  puts "trueだよ!"
else
  puts "falseだよ!"
end

hoge = false, hoge = nil のときは「falseだよ!」が出力され、それ以外はぜーんぶ「trueだよ!」が出力される。

問題の答え

答えは「3番」です!簡単でしたか?
unless文を使っているので条件に「nil」か「false」のときだけ「ok」が出力されます。4番の"false"は文字列ですのでご注意を。

コードも綺麗に書けるよね

こんな感じで書かれていたら

if !@article.nil?
  puts "記事があるよ!"
end

書き直したくなりますね!

if @article
  puts "記事があるよ!"
end

Rubyのtrue/false簡単かつ基本なので覚えておかなきゃですね!

62
37
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
62
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?