我想做相当于以下操作的事情:
::Infinity= 1.0/0
在一个用C语言编写的Ruby扩展中。
到目前为止,我已经想出了以下内容:
rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_float_new(1.0/0));
由于除以零,编译器会给我一个警告。
而
rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_eval_string("1.0/0"));
由于使用了 eval
,导致代码看起来不美观。
有没有一种干净、合适的解决方案呢?
Float::INFINITY
提供不了您需要的东西吗? - Jörg W MittagFloat::INFINITY
似乎只在ruby1.9中有效。 - johannesFloat::INFINITY
是在Ruby 1.9.2中添加的,该版本已经发布了超过14个月。 - Jörg W Mittag