• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ruby Vectorの===変更の問題)

Ruby Vectorの===変更:範囲内判定の問題

このQ&Aのポイント
  • Ruby Vectorで要素に範囲オブジェクトを入れたVectorと同じ要素数のVectorを組んで、範囲内判定を実装したいが、元の===が変更されてしまい、元の処理が使えなくなる可能性がある。
  • ===の変更が重要な処理に影響するかどうか不明で、検索しても具体的な情報が得られない。
  • RubyのVectorを使用して範囲内判定を実装する際の問題についての質問。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

主たる使用場所は、case / when 構文です。あと、Enumerable#grep での比較。 おそらく再定義で問題は無いと思いますが、心配なら、Vectorを直接使うので無く、サブクラスを定義してそこで再定義して使えば良いかと思います。

tsanndayo
質問者

お礼

回答ありがとうございます。 御陰様で使用場所がはっきりとしました。 サブクラスでも良いと思うのですが、===の処理だけの為に作成するのも気が引けるので、 今回は元のクラスのまま再定義でやってみます。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

そこに悩むくらいなら、別の名前にして inRange(Vector[3, 8], Vector[(0..10), (5..8)]) とか myVector[3, 8].inRange(myVector[(0..10), (5..8)]) とかにしたらどうでしょうか?

tsanndayo
質問者

お礼

回答ありがとうございます。 別のメソッドとして実装することも考えたのですが、 統一感が無くなり、分かり易さ、見た目などを考慮して、===の方が適切だと思っています。

関連するQ&A