📚

演算子

2024/05/09に公開

最初に詰まった == と=の違いから例を挙げます。

最初のメソッド:

def written_by?(current_user)
  user == current_user
end

ここで使用されている==は、等価比較演算子です。
このメソッドは、userとcurrent_userが等しいかどうかを比較し、結果としてtrueまたはfalseを返します。つまり、このメソッドは、与えられたcurrent_userがuserと等しいかどうかをチェックするために使われます。

二つ目のメソッド:

def written_by?(current_user)
  user = current_user
end

ここで使用されている=は、代入演算子です。このメソッドは、current_userの値をuserに代入します。
しかし、単にcurrent_userの値をuserに代入するだけです。
代入された値(この場合はcurrent_userの値)を返します。

要約すると、最初のメソッドは2つのオブジェクトが等しいかどうかを比較するために使われ、
二つ目のメソッドは一方のオブジェクトに他方のオブジェクトの値を代入するために使われます。

=と==が1つ違うだけでこんなにも変わります。

演算子の一覧参照リンク
https://www.tohoho-web.com/ruby/operators.html
https://blog.codecamp.jp/posts-34186

Discussion