Ruby勉強

インターネットの企画職な人がプログラミングを勉強するブログ

2016-06-07から1日間の記事一覧

Ruby Methodクラス UnboundMethodクラス

Methodオブジェクトは、メソッドを保存でき、callで実行できる class A def hoge puts 1 end end a = A.new.method(:hoge) a.call #=> UnboundMethodはメソッドの付け替えが可能 同じクラス、もしくはサブクラスにしかつけかえられない class C def my_metho…

Ruby __send__, instance_eval, instance_exec

privateメソッドでも、 sendやinstance_evalならば実行可能 class A private def a @value = "a" puts @value end end obj = A.new obj.__send__(:a) #=> "a" # instance_evalはブロックを実行可能 obj.instance_eval{ puts(@value + "b") }#=> "ab" instant…

Ruby Proc/lambda

Procとlambdaで break時、return、retry時の挙動が異なる。 l1 = lambda {return 10} l2 = lambda {break 20} p l1.call #=> 10 p l2.call #=> 20 p1 = Proc.new {return 10} p2 = Proc.new {break 20} p p1.call #=> unexpected return (LocalJumpError) p …