search
LoginSignup
0

posted at

updated at

【Ruby】Procオブジェクトの呼び出し

def foo(n)
  n ** n
end

foo = Proc.new { |n|
  n * 4
}

puts foo[2] * 2

この答えは 16 になる。
Procを呼び出すときには、[]もしくは.callで呼び出すことができるらしい。

そのため、この問題ではputs foo[2] * 2としているため、

foo = Proc.new { |n|
  n * 4
}

この処理が走るということらしい。

ちなみに、puts foo 2 * 2であれば、

def foo(n)
  n ** n
end

この処理が走ることになるらしい。
あっているかわからないので、詳しい方コメントいただけたら嬉しいです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0