首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法与Opal一起使用Ruby数学库

无法与Opal一起使用Ruby数学库
EN

Stack Overflow用户
提问于 2015-01-13 18:34:30
回答 1查看 295关注 0票数 1

有没有办法使用Opal的红宝石数学图书馆?

在我的ruby方法中使用Uncaught NameError: uninitialized constant Object::Math时,我得到了下面的错误消息Math::PI

红宝石代码:

代码语言:javascript
复制
class Numeric
  def degrees
    self * Math::PI / 180 
  end
end

Opal生成的javascript:

代码语言:javascript
复制
/* Generated by Opal 0.6.3 */
(function($opal) {
  var self = $opal.top, $scope = $opal, nil = $opal.nil, $breaker = $opal.breaker, $slice = $opal.slice, $klass = $opal.klass;

  $opal.add_stubs(['$/', '$*']);
  return (function($base, $super) {
    function $Numeric(){};
    var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric);

    var def = self._proto, $scope = self._scope;

    return (def.$degrees = function() {
      var $a, $b, self = this;

      return self['$*']((($a = ((($b = $scope.Math) == null ? $opal.cm('Math') : $b))._scope).PI == null ? $a.cm('PI') : $a.PI))['$/'](180);
    }, nil) && 'degrees'
  })(self, null)
})(Opal);

//# sourceMappingURL=/__opal_source_maps__/game_engine/numeric.js.map
;

(谢谢;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-13 19:24:32

Math模块在Opal的stdlib中,不包括在默认运行时(据我所知)。

根据部署上下文的不同,将Math模块(Opal::Builder.build('math'))放入文件可能是最容易的。

不过,对于您的具体示例,您可以只使用JS近似(Opal的Math::PI所做的全部工作):

代码语言:javascript
复制
class Numeric
  def degrees
    self * `Math.PI` / 180 
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27929098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档