问题标签 [proc]

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 投票
14 回答
81106 浏览

ruby - 何时使用 lambda,何时使用 Proc.new?

在 Ruby 1.8 中,一方面 proc/lambda 之间存在细微差别,另一方面Proc.new

  • 这些区别是什么?
  • 你能就如何决定选择哪一个提供指导吗?
  • 在 Ruby 1.9 中,proc 和 lambda 是不同的。这是怎么回事?
0 投票
5 回答
4908 浏览

ruby - 将过程作为块提供给方法

假设我有以下数组:

我想找到最小元素,比较元素的第二个元素。最小元素将是[5, 1]因为1小于7。我可以使用以下代码:

为了计算最大值,我可以这样做:

这给了[2, 7].

我一直使用同一个块。我想把那个块放在某个地方并将它提供给 min/max 函数。我希望是这样的:

会工作,但它没有。关于我如何做到这一点的任何想法?

0 投票
2 回答
20205 浏览

ruby - 为什么我们需要纤维

对于 Fibers,我们有经典的例子:生成斐波那契数

为什么我们在这里需要纤维?我可以用相同的 Proc 重写它(实际上是关闭)

所以

将返回相同的结果。

那么纤维有哪些优点呢。我可以用 Fibers 写哪些我不能用 lambdas 和其他很酷的 Ruby 功能写的东西?

0 投票
1 回答
4026 浏览

android - 为什么我无法通过 Android ICS 中的 FileReader 正确读取 /proc/net/xt_qtaguid/stats

我想在 Android ICS 中读取 /proc/net/xt_qtaguid/stats,它记录了所有接口和应用程序的流量统计信息。以下是代码片段:

如果我 cat 这个文件,它将显示:

idx iface acct_tag_hex uid_tag_int cnt_set rx_bytes rx_packets tx_bytes tx_packets rx_tcp_bytes rx_tcp_packets rx_udp_bytes rx_udp_packets rx_other_bytes rx_other_packets tx_tcp_bytes tx_tcp_packets tx_udp_bytes tx_udp_packets tx_other_bytes tx_other_packets

2 rmnet0 0x0 0 0 6266 105 8882 121 1428 30 4838 75 0 0 208 4 2552 44 6122 73

3 rmnet0 0x0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

4 rmnet0 0x0 1000 0 0 0 2262 39 0 0 0 0 0 0 0 0 2262 39 0 0

5 rmnet0 0x0 1000 1 0 0 290 5 0 0 0 0 0 0 0 0 290 5 0 0

6 rmnet0 0x0 10004 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

7 rmnet0 0x0 10004 1 20177 36 7037 81 20177 36 0 0 0 0 7037 81 0 0 0 0

而且我发现 NetworkStatsFactory.java(Android original class) 也读取了这个文件并使用了相同的方法。我尝试使用这个类,它也无法正确读取:

谷歌工程师是否犯了同样的错误?:)

0 投票
2 回答
3931 浏览

ruby - 将方法从一个类复制到另一个类

我想用一些方法编写小类,这些方法实际上属于其他类,那么如何在其他类中定义现有副本的方法。我相信这是我不明白的元编程魔术师。

为什么我需要这个?我正在研究仅用三种方法上课的 gem。在初始化(将隐藏在父类中)时,它将将此方法传递给不同的类。我可以用块来做这个,但是用方法它就更干净了。

PS:这就像将方法从一个类复制到另一个类

PSS:或者......如何将方法转换为proc,所以我可以将它传递给class_eval

0 投票
1 回答
1804 浏览

c++ - GDB 无法插入内部断点

我在一个共享库 (.so) 的函数中添加了两个断点,然后运行gdb 7.4并将其附加到一个进程。

gdb打断点,我跑n了几步,gdb报如下错误(加粗):

(gdb) b [函数名称]
0xf1f28a49 处的断点 1:文件 ../../../../../[文件名].cpp,第 167 行
。0xf1f2dae5 处的断点 2:文件 ../.. /../../../[文件名].cpp,第 60 行
。警告:设置了多个断点。
使用“delete”命令删除不需要的断点。
(gdb) c
继续。
[新线程 0xcaafab90 (LWP 28480)]
[线程 0xcaafab90 (LWP 28480) 退出]
[新线程 0xcaafab90 (LWP 29558)]
[新线程 0xc8cb6b90 (LWP 29980)]
[切换到线程 0xc8cb6b90 (LWP 29980)]

断点 2函数名] (ostr=..., clientResponse=..., httpProtocol=..., >reqType=...) 在 ../../../../../[文件名]。 cpp:60
60 ../../../../../[文件名].cpp:没有这样的文件或目录。
在 ../../../../../[文件名].cpp
(gdb) ni
0xf1f2daed 60 在 ../../../../../[文件名].cpp
(gdb) n

断点 1, [函数名] (ostr=..., clientResponse=..., httpProtocol=..., >closeConn=..., asynchResponse=..., reqType=...)
在../../../../../[文件名].cpp:167
167 in ../../../../../[文件名].cpp
(gdb) n
警告:
无法插入断点 0。
访问内存地址 0x36cc6dde 时出错:输入/输出错误。 /lib/libc.so.6 (gdb)

中的 siglongjmp () 中的 0xf7082771

这是来自的输出/proc/[PID]/maps

08048000-08146000 R-XP 000000 08:03 293876

08146000-08150000 RW-P 000FE000 08:03 293876

08150000-099C8000-099C8000 RW-P -P 08150000 0000 0000 000 000 000 000 000 000 c21 c21 c21 c21f9 hea c21f9 hea c21f9 hea c21f9 hea c21 c21f9 hea
c21f9 heae c29fa000 rwxp c21fa000 00:00 0 c29fa000-c29fb000 ---p c29fa000 00:00 0 ……<br> f1e1b000-f1e24000 rw-p f1e1b000 00:00 0 f1e24000-f2093000 r-xp 00000000 08:03 295549 .so f2093000- F2094000 --- P 0026F000 08:03 295549 .SO F2094000 -F2098000 R-P 0026F000 08:03 295549 .SO F2098000 -F209C000 RW-P-P 00273000 08:03 295549 .SO F209C000 F209C000 C209C000 C209CCC 000 cc.













我的问题是:

  1. Gdb 无法为命令插入内部断点,但是如果文本部分位于ni,为什么它会尝试访问地址?如您所见,该地址不包含在映射的输出中。0x36cc6dde0xf1******

  2. 更一般的问题,有人告诉我共享库开始于0x40000000但为什么在我的环境中不是这种情况?

共享库是用-fPIC. 我在上面的痕迹中隐藏了一些符号名称。

0 投票
2 回答
340 浏览

java - 随着时间的推移,Java 应用程序变得越来越慢

我有一个使用 JNI 调用 Java 模块的 Pro*C 应用程序。当它连续运行一两天时,应用程序性能正在下降。内存使用量保持在可接受的范围内。你能指导我如何调查性能问题吗?

0 投票
1 回答
124 浏览

ruby - 了解proc类

我正在学习 Ruby Proc 课程。我不明白为什么要执行“def state =”方法。

我也想知道为什么“t1.state = 1”以“def state=(1)”结尾

我不明白 "def state" 和 "def state=" 之间的区别?

我可以理解这个连接“&proc>proc>proc.call”。

0 投票
2 回答
4977 浏览

namespaces - 如何在 tcl 命名空间中定义一个 proc

我在 TCL 中看到了一些这样的代码:

命名空间::info中定义了三个变量,但是命名空间中没有声明三个procs(setcount setId setRole),似乎它们是在::info之外定义的,是否允许?这是如何运作的?

0 投票
4 回答
258 浏览

ruby-on-rails - 什么时候块比函数(红宝石)更有用?

我有两个给出相同结果的例子。

带块:

并使用方法:

第二种解决方案似乎更直接,但我在我们的应用程序代码中发现了第一种的一些用法。我的问题是:在哪种情况下推荐第一个?各有什么优缺点?