カテゴリ: Ruby 更新日: 2025/12/05

Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け

比較演算子の使い分け:==・===・<=>・eql? の違いを徹底解説
比較演算子の使い分け:==・===・<=>・eql? の違いを徹底解説

先生と生徒の会話形式で理解しよう

生徒

「Rubyで数字や文字を比べるときに、==と===の違いがよくわかりません。」

先生

「それは重要な質問です。Rubyには複数の比較演算子があり、それぞれ用途や意味が少しずつ異なります。」

生徒

「他にも<=>eql?があると聞きました。どう使い分けるんですか?」

先生

「では順番に見ていきましょう。初心者でも理解できるように、例を交えて解説します。」

1. ==(イコール)で値を比較する

1. ==(イコール)で値を比較する
1. ==(イコール)で値を比較する

==は最も基本的な比較演算子で、二つの値が等しいかどうかを判定します。整数や文字列など、値そのものが同じかを確認します。


puts 5 == 5        # true
puts 5 == 3        # false
puts "ruby" == "ruby"  # true

true
false
true

ポイントは型が異なっても比較可能ですが、値が一致していない場合はfalseになります。

2. ===(ケース等価)でパターンマッチ

2. ===(ケース等価)でパターンマッチ
2. ===(ケース等価)でパターンマッチ

===は「ケース等価」と呼ばれ、主にcase文で使用されます。オブジェクトによって挙動が異なり、RangeやRegexpと組み合わせることが多いです。


case 5
when 1..10
  puts "範囲内です"
end

範囲内です

このとき内部では (1..10) === 5 が評価されています。範囲に含まれているかどうかを確認する便利な演算子です。

3. <=>(スペースシップ演算子)で大小比較

3. <=>(スペースシップ演算子)で大小比較
3. <=>(スペースシップ演算子)で大小比較

<=> は「スペースシップ演算子」と呼ばれ、二つの値を比較して大小関係を返します。返り値は以下の通りです。

  • -1:左が小さい
  • 0:等しい
  • 1:左が大きい
  • li>nil:比較できない

puts 3 <=> 5   # -1
puts 5 <=> 5   # 0
puts 7 <=> 5   # 1

-1
0
1

この演算子はソートや順序判定に便利です。

4. eql?で型まで厳密に比較

4. eql?で型まで厳密に比較
4. eql?で型まで厳密に比較

eql?は値だけでなく型も一致しているかを確認する厳密な比較です。整数と浮動小数点は同じ数値でも別物として扱われます。


puts 5.eql?(5)     # true
puts 5.eql?(5.0)   # false
puts "ruby".eql?("ruby")  # true

true
false
true

型まで厳密に確認したい場合はeql?を使うと安全です。

5. 比較演算子の使い分けまとめ

5. 比較演算子の使い分けまとめ
5. 比較演算子の使い分けまとめ
  • ==:値だけ比較したいときに使用
  • ===:case文や範囲、正規表現とのパターンマッチに使用
  • <=>:大小関係を知りたいとき、ソート時に使用
  • eql?:値と型の両方を厳密に比較したいときに使用

用途に応じて正しく演算子を使い分けることで、意図しないバグを防ぎ、Rubyの数値や文字列の比較を安全に行えます。

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう
No.8
Java&Spring記事人気No8
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説