:sym.eql?("sym") 在 IronRuby 中是否行为不当?
我刚刚在 Mac 上安装了 Mono 2.10,然后运行我之前完成的 Ruby Koans 来看看 IronRuby 是否可用得到与 Mac 原生 Ruby 1.8.7 相同的结果。其中一个测试中途失败了,问题似乎是这样的:
在 Ruby 1.8.7 中,以下表达式为 false:
:sym.eql?("sym")
=> false
然而,在 IronRuby 中,它为 true。我运行的 IronRuby 版本是 1.1.2.0,这显然与 Ruby 1.9.2 相当,所以我下载了它来检查 - 它的行为与 Ruby 1.8.7 相同。这是 IronRuby 实现的问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 Ruby 规范,这是一个错误。
#eql?
的语义是,如果==
为 true,则为 true,并且如果对象属于同一类,则为 true。This is a bug according to the Ruby Spec. The semantics of
#eql?
are that it is true if==
is true and if the objects are of the same class.