Ruby (および Rails) での発見: 大文字と小文字の等価演算子
Ruby は、プログラムの制御フローを制御するメカニズムを提供します.これらは、if ステートメント ファミリー
「case/when 構造の基本的な考え方は、オブジェクトを取得し、一致する一連のテストをカスケードし、成功したテストに基づいてアクションを実行することです.」. Black, D. A., & Leo, J. (2019).地に足の着いたRubyist.マニング.
典型的なケースステートメントは次のようになります
すべての ruby オブジェクトには、
threeequal 演算子は、すべての組み込みクラスのあらゆる場所で定義されています.定義したクラスに実装することもできます.
これで、case/when と一緒に使用できます.
これを Ruby セッションで実行すると、次のようになります.
その下で、Ruby インタープリターは、
三重等号演算子またはケース包含演算子を使用すると、Ruby の case/when 制御フロー演算子でクラスをエレガントに動作させることができます.
読んでくれてありがとう、ハッピーコーディング.
The Well-Grounded Rubyist
if
、 elsif
、 else
、および unless
で構成されます. case/when
とともに.「case/when 構造の基本的な考え方は、オブジェクトを取得し、一致する一連のテストをカスケードし、成功したテストに基づいてアクションを実行することです.」. Black, D. A., & Leo, J. (2019).地に足の着いたRubyist.マニング.
典型的なケースステートメントは次のようになります
tool = "google"
case tool
when "google"
puts "tool is google"
when "basecamp"
puts "tool is basecamp"
else
puts "unknown tool"
end
すべての ruby オブジェクトには、
===
と呼ばれる大文字と小文字の等価メソッド、トリプル等号があり、大文字と小文字を区別する演算子または threequal 演算子と呼ばれることもあります.when tool.=== "google"
を行う代わりに. when "google"
キーワードは、以前のアプローチに構文糖衣を提供します.threeequal 演算子は、すべての組み込みクラスのあらゆる場所で定義されています.定義したクラスに実装することもできます.
Car
クラスを定義しましょう.class Car
attr_accessor :brand, :type
def initialize(brand, type)
self.brand = brand
self.type = type
end
def ===(other_car)
self.brand == other_car.brand
end
end
これで、case/when と一緒に使用できます.
ford = Car.new "Ford", "F-150"
jeep = Car.new "Jeep", "Wrangler"
tesla_model_x = Car.new "Tesla", "Model-X"
tesla_model_y = Car.new "Tesla", "Model-Y"
case tesla_model_x
when ford
puts "It's a ford"
when jeep
puts "It's a Jeep"
when tesla_model_y
puts "Both are Tesla made"
else
puts "unknown manufacturer"
end
これを Ruby セッションで実行すると、次のようになります.
Both are Tesla made
=> nil
その下で、Ruby インタープリターは、
===
クラス内で定義したオブジェクトの Car
メソッドを呼び出します. def ===(other_car)
self.brand == other_car.brand
end
三重等号演算子またはケース包含演算子を使用すると、Ruby の case/when 制御フロー演算子でクラスをエレガントに動作させることができます.
読んでくれてありがとう、ハッピーコーディング.
資力
Reference
この問題について(Ruby (および Rails) での発見: 大文字と小文字の等価演算子), 我々は、より多くの情報をここで見つけました https://dev.to/rockwell/discoveries-in-rubyand-rails-case-equality-method-34mgテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol