要素代入(=)という書き方

gemとかでこういう書き方をたまに見かけます。

def hoge=(hoge)
  @hoge = hoge
end

メソッドに=つける意味あんのか?などと思っていました。

要素代入と呼ばれるものです。

参考

ztbuz.hateblo.jp

使い方

class User
  def name=(name)
    @name = name
  end

  def name
    @name
  end
end

user = User.new
user.name= 'hoge'
user.name
→hoge

代入専用という意味で使われるということです。

なんか特別なことでも起きるのか?って感じていましたが、どうやらそうでもないみたいです。

書くと玄人っぽく見える。

実は他にも意味があると知っている方は教えて下さいm( )m