如何Proc#==
评价?RDoc说:
prc == other_proc → 真或假
如果 prc 与 other_proc 是同一个对象,或者它们都是具有相同主体的 proc,则返回 true。
但不清楚什么算作“同一个身体”。一个条件似乎是 arity 必须相同:
->{} == ->{} # => true
->{} == ->x{} # => false
->x{} == ->x{} # => true
->x{} == ->y{} # => true
->x{} == ->y,z{} # => false
但不止于此。正如 RDoc 所说,身体很重要:
->{nil} == ->{nil} # => true
->{nil} == ->{false} # => false
->{false} == ->{false} # => true
但与此同时,proc 似乎没有被完全评估:
->{} == ->{nil} # => false
->{false} == ->{1 == 2} # => false
身体被评估到什么程度?