みんなのちからになりたい

コピペでブログラムつくっていきたい

クラスメンバのhashとか配列とかにアクセスするとき

githubの誰かのリポジトリをみてたら、外からhashとかにアクセスさせるとき

  def [](key)
    @hash[key]
  end

みたいなことしてて、すごいかっこいい。
演算子もメソッドだからこういうことやれるらしい。

クラス/メソッドの定義 - Rubyリファレンスマニュアル

これを例えば.NETとかでやろうとすると

// こんな感じっぽいことして
public class Test
{
  public Dictionary<string, string> Dic = new Dictionary<string, string>();
}

// こんな感じっぽいことする
Test test = new Test();
test.Dic["test"] = "value"

入れたり出したりしてみるテスト。

class HashTest
  def initialize()
    @hash = {}
  end
  def [](key)
    @hash[key]
  end
  def []=(key, value)
    @hash[key] = value
  end
end

test = Hash.new
p a: test[:test]
p b: test[:test] = "test"
p c: test[:test]


$ ruby hash.rb
{:a=>nil}
{:b=>"test"}
{:c=>"test"}

勉強になる。