Looking for ruby Answers? Try Ask4KnowledgeBase
Looking for ruby Keywords? Try Ask4Keywords

Ruby Language演算子


備考

演算子はメソッドです

ほとんどの事業者は、実際にはメソッドなので、 x + y呼び出している+方法x引数とy書き込まれる、 x.+(y)与えられた演算子の意味的意味を持つ独自のメソッドを書く場合は、そのクラスにバリアントを実装できます。

愚かな例として:

# A class that lets you operate on numbers by name.
class NamedInteger
  name_to_value = { 'one' => 1, 'two' => 2, ... }

  # define the plus method
  def + (left_addend, right_addend)
    name_to_value(left_addend) + name_to_value(right_addend)
  end

  ...
end

&&and||を使用する場合対or

ブール値を表現するには、 && and 、および|| 2つの方法があります。またはor -彼らは常にではないが、多くの場合、交換可能です。これらを「文字」と「単語」の変種と呼んでいます。

文字バリアントの優先順位が高くなり、より複雑なステートメントでかっこの必要性が減り、予期しないエラーを回避できます。

単語バリエーションは、もともとブール演算ではなくコントロールフロー演算子として意図されていました。つまり、連鎖メソッド文で使用するように設計されています。

raise 'an error' and return

ブール演算子として使用することはできますが、優先順位を低くすると予測できません。

第2に、多くのRubyistsは、x.nilなどのブール式( trueまたはfalseと評価される式)を作成するときに文字の変形を好みx.nil? || x.empty? 。一方、 一連のメソッドが評価されている場合には、バリアントが優先され、失敗する可能性があります。たとえば、失敗時にnilを返すメソッドにvariantという単語を使用する一般的なイディオムは次のようになります。

def deliver_email
  # If the first fails, try the backup, and if that works, all good
  deliver_by_primary or deliver_by_backup and return
  # error handling code
end

演算子 関連する例