问题标签 [class-eval]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 如何使数组仅在第一次调用函数时初始化?
我想制作 attr 访问器,它将记录数组中所有写入的历史记录,但问题出在 class_eval 中,数组每次都被初始化,因此它不保存旧值。
我应该做些什么改变?
ruby - 在 Ruby 中扩展类(def 与 class_eval)
似乎 class_eval (将字符串转换为代码)和用新的 def 方法声明类本质上是一回事。
它们真的是等价的吗?各自的优缺点是什么?
ruby - class_eval 与 instance_eval
class_eval
除了 之外,工作方式和instance_eval
工作方式有什么不同def
吗?内部class_eval
块def
为类本身定义方法(即实例方法),内部块为类instance_eval
def
的特征类定义方法(即类方法)。AFAIK 所有其他功能在这两种情况下的工作方式相同(例如define_method
, attr_accessor
, class << self; end
, 定义常量)。这是真的吗?
答案是:def
和undef
和有不同的alias
上下文。class_eval
instance_eval
ruby - 类评估块内的正则表达式错误
我有一些代码可以从简单的定义中将方法添加到模块中,以便通过 REST 客户端周围的包装类与远程资源进行对话。
在我什至可以运行代码之前,只需要我在 IRB 中构建的 gem 就会吐出这个错误:
违规行是:
删除“#{uri}”参数可以修复它,甚至保留“#{method}”参数。有没有人知道为什么会这样?我快束手无策了。
ruby - Ruby 元编程:将@variables 添加到现有的“初始化”方法(使用 class_eval)
我有这个小项目,目标是创建一个“attr_accessor_with_history”方法,它将记录分配给它创建的变量的每个值。这是代码:
现在,当我为一个变量测试脚本时。它工作正常。但是当我尝试创建两个或更多变量时(像这样)......
....Ruby 为 (class_eval) bar_history.push(new_value) 提供了一个“不存在的‘push’方法”。我认为“初始化”方法在 attr_accessor_with_history 的第二次调用中被覆盖,因此第一个变量的记录被破坏。
我不知道如何解决这个问题。我已经尝试调用 'super' 。有什么线索吗?
ruby - 无法破译此包含地图运算符的 Ruby 行
我刚刚在ruby-trello中看到了这行 Ruby 代码:
它似乎与定义为的超类方法有关:
我知道class_eval与反射有关。
有人可以解释子类代码行的目的吗?
我的猜测是它调用类成员作为名称one
传递:member_creator
,两个尾随参数作为opts
参数。但是为什么要在类级别调用呢?
ruby - class_eval 的 Ruby 问题
我正在尝试运行以下命令,但我不断收到
“NoMethodError:#/Foo:0x86f69ba/ 的未定义方法 `bar='”
我实际上正在使用类似于这篇文章的内容:Ruby - Using class_eval to define methods
编辑:你说得对,我做出了改变来反映这一点..非常感谢。
ruby - 使用 class_eval 创建方法
我想写一个方法,它接受一个参数并创建另一个方法,用这个参数命名。这是我的代码
不幸的是,respond_to?(:foo)
评估为false
. 怎么了?
ruby - 具有 attr_accessor 的类上的 Ruby instance_eval
instance_eval
我了解和之间的基本区别class_eval
。我在玩耍时发现了一些奇怪的东西attr_accessor
。这是一个例子:
这是怎么回事:
- instance_eval 没有访问我们的 A 类(对象)
- 然后它实际上将它添加到 A 的实例中?
ruby - 类 eval 通过引用传递类变量
以下代码片段:
类变量正在共享。
结果:
222 222