问题标签 [proc-object]

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.

0 投票
4 回答
21031 浏览

time - TCL - 如何知道一个函数工作了多少时间?

假设我有一个proc,proc 由几个语句和函数调用组成。我怎么知道这个功能到目前为止花了多少时间?

0 投票
2 回答
421 浏览

ruby - Hash.each 和 lambdas 之间的数量不一致

我从Josh Susser举起以下示例

当我把它放在 Rails 控制台(irb)中,并用哈希调用它时,我得到以下信息:

我知道 lambdas 检查 arity,但我在 lambda 定义中看到了两个参数。如果我更改lambda doProc.new do,代码会执行,我会得到预期的结果。

Josh 的示例来自 2008 年,所以我假设这是 Ruby 1.8 和 1.9 的差异。这里发生了什么?

0 投票
2 回答
1408 浏览

ruby-on-rails - 在对象初始化之前调用的回形针动态 Proc 样式

我有以下回形针设置。发生的事情是我正在使用 proc 来设置各种样式的尺寸。但是,proc 在 new 和 super 调用期间被调用。我浏览了调试器,它似乎首先处理 :photo 参数,因此它初始化附件并调用样式 proc,此时实际对象(照片)尚未被传入的参数初始化(特别是 photo.gallery_id所以它没有正确设置样式。我什至尝试重新处理,但没有帮助。我花了几天时间,仍然没有运气。感谢任何帮助!

0 投票
3 回答
2487 浏览

ruby - 我怎样才能委托一个通过它附带的块的调用?

我正在遍历一个对象图,并希望将一个块传递给它,该块将在一个方法的结构的每个节点上运行 - 我们称之为visit

在顶部,我将使用一个块进行调用,并且我想将初始调用委托给访问根对象以访问其他对象。我可以使用 &last_parameter_name 将块解压缩到本地的 proc 中 - 但是如何在我的委托调用中将 proc 转回块?

这是一个简化的示例,我调用first(...)并希望将块委托给我对second(...)的调用

注意:我需要在这里对 first() 和 second() 有相同的约定 - 即它们需要采用相同的东西。

阅读并尝试了答案后,我想出了一个更完整的工作示例:

0 投票
1 回答
1052 浏览

ruby - ruby 块中“return”关键字的行为

有人可以解释以下行为

我知道 Procs (块是什么)应该在它们被调用的范围内返回。(与 lambdas 不同)考虑到这一点,测试中的两个调用都不应该返回“块结束”吗?

该测试通过'ruby 1.8.7(2009-06-12 patchlevel 174)[universal-darwin10.0]'(OSX 10.6.7)

0 投票
1 回答
1236 浏览

ruby - 从另一个作用域中定义的 Proc 引用局部变量

我想创建一个实例方法,它根据以多态方式覆盖的实现来改变其行为与另一个方法的返回值。

例如,假设以下类是扩展的,并且pricing_rule应该根据产品而改变。

但是,当我运行它时,我得到了一个未定义的局部变量错误。虽然我知道 Proc 的实例是指 Purchase 的实例,但有时我会遇到类似的情况,我需要将prices变量放入 discount_price 方法中。有没有更聪明的方法可以在 Proc 的调用者中引用局部变量?

0 投票
2 回答
1179 浏览

wrapper - tcl:包装一个同名的proc

我想用一个具有相同名称和调用约定的 proc 替换“proc N”的定义,但需要额外的错误检测代码。

在 python 中,我可以像下面那样做我想做的事,但我不了解命名空间和函数句柄在 tcl 中是如何工作的。

0 投票
5 回答
10657 浏览

ruby - Ruby 块、procs 和 instance_eval

我最近尝试做类似的事情:

这给出了错误:

TypeError:无法将 Proc 转换为字符串

但这有效:

使用此方法进一步了解:

产生相同的Proc to String错误。

所以......我对块的理解是它们只是过程。但显然有这个&符号有一些特别之处&......

谁可以给我解释一下这个?是否可以将普通 proc 转换为该对象的特殊之处&block

编辑

刚刚想出了我的第二个问题,&在 proc 前面加上一个……这很容易,但这到底在做什么?

0 投票
2 回答
1112 浏览

ruby-on-rails - Ruby 中的 Proc.new:我什么时候需要使用它?

示例中的date_validator有一条评论:

这是否意味着,在我的代码中的任何地方,我使用当前时间相关的方法(Time.now、1.day.since(Time.zone.now) 等)我都应该用 Proc.new { } 包围它们?

我不完全理解这一点,因为更换

对我来说没有意义(返回新类型的对象)。

所以,问题是,我应该何时以及如何将 Proc.new 与时间相关的方法一起使用?这仍然适用于 Ruby (1.92) 和 Rails (3.1) 的最新版本吗?

0 投票
3 回答
3815 浏览

default - 如何使用变量作为 TCL proc 参数的默认值

我有一个变量,我想将其用作参数的默认值:

有没有办法做到这一点或需要我评估我的proc中的变量?