Ruby 3-3

こんにちは!

蝉の泣きが活発になってきた。

比較演算子

今回は比較演算子のお話です。

compare_diff.rb
Image from Gyazo

Image from Gyazo

異なる型同士の比較は、基本的にfalseとなります。
数値のInteger型とFloat型は比較可能です。

compare_diff_type.rb
Image from Gyazo

Image from Gyazo

文字列型では比較の方法が変わります。
辞書式の比較となるので、5 > 3 より '15' > '131' となります。

compare_array.rb
Image from Gyazo

Image from Gyazo

配列の比較も辞書式と同じです。
大小比較には「<=>」を用います。
左辺>右辺なら 1、左辺<右辺なら -1、左辺=右辺なら 0、の値を返します。

compare_float.rb
Image from Gyazo

Image from Gyazo

浮動小数点は2進数で扱われるため、1行目はRubyではfalseになります。
Rational型を用いて有理数にすることは有効です。

compare_float2.rb
Image from Gyazo

Image from Gyazo

定数EPSILONイプシロン)は誤差の許容範囲を表します。
今回は浮動小数点同士の差を求め、absメソッドで絶対値を取得しています。
その差が0.00001未満である、ということです。

compare_identify.rb
Image from Gyazo

Image from Gyazo

同値性、値が同じなので1行目はtrueです。
同一性、参照値が同じオブジェクトでないといけません。
なので、値は同じでも別のオブジェクトを指している2行目はfalseになります。

compare_immutable.rb
Image from Gyazo

Image from Gyazo

Integer型などのイミュータブル型は、値をオブジェクトとして扱うため、同一性でもtrueとなります。

condition_basic.rb
Image from Gyazo

Image from Gyazo

基本的な条件演算子です。

condition_multi.rb
Image from Gyazo

Image from Gyazo

複数の条件を列記することもできます。
ただし、可読性のためには if 命令文を用いるほうがよいでしょう。

condition_if.rb
Image from Gyazo

Image from Gyazo

こんな感じです。
ここでも型などは重要となってきますので、常に意識していきましょう。

ではでは。