simanのブログ

ゆるふわプログラマー。競技プログラミングやってます。Ruby好き

RubyのProcでHello World

Rubyを色々触ってきたけど、Proc周りを全く触ってなかったので意識的に

触ってみようかと思う。まずは「Hello World」から

 

[1] pry(main)> proc = Proc.new { puts "Hello World" }

=> #<Proc:0x007fbe230c3bc0@(pry):1>

[2] pry(main)> proc.call

Hello World

=> nil

 

Proc.newでブロック内に書かれている処理をオブジェクトとして渡すことができる。

そしてcallメソッドを呼び出して、オブジェクト化した処理を呼び出せる

 

ほかにも

 

[1] pry(main)> proc = lambda { puts "Hello World" }

=> #<Proc:0x007ff4b3841fe8@(pry):1 (lambda)>

[2] pry(main)> proc.call

Hello World

=> nil

 

lambdaでもできる

 

[1] pry(main)> proc =-> { puts "Hello World" }

=> #<Proc:0x007fb081840470@(pry):1 (lambda)>

[2] pry(main)> proc.call

Hello World

=> nil

 

「->」でもいけるけどあまり好みじゃない

 

色々調べてみます