知道为什么下面的代码不起作用吗?
require 'minitest/mock'
test = Minitest::Mock.new
test.expect :class, Class
p case test
when Class
'class'
else
'nope'
end # => 'nope' … but should return 'class'
p test.class === Class # => true发布于 2015-05-19 11:49:49
Rubycase在不显式调用class的情况下处理===比较,尽管对test.class的结果进行显式比较可以使上述代码工作。
但是,如果您不能这样做,正如您前面所说的,您可能无法让这样的case工作。我猜想Ruby的case实现是用C实现的,所以class可能永远不会被调用,而期望也永远满足不了。
https://stackoverflow.com/questions/30323499
复制相似问题