问题标签 [coderef]

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 投票
5 回答
1331 浏览

perl - 是否可以在 Perl 的哈希构造函数中定义匿名子例程?

是否可以在 Perl 的哈希构造函数中定义匿名子例程?

我正在尝试做这样的事情:

但它不起作用。代码似乎可以运行和编译,但数组中的值是空白的。如果我这样做:

然后它似乎工作正常。所以我有一个解决方法,但这只是让我烦恼,我想知道是否有人知道这是否可能,如果有,语法是什么。

0 投票
2 回答
238 浏览

perl - 当我将 coderef 传递给这个原型化的 Perl 子例程时,为什么会出现语法错误?

这是代码:

如果我尝试这样称呼它:

我明白了Not enough arguments for MyPackage::function at x.pl line 5, near ""whatever" { "。我怎样才能调用它而不必sub在代码块前面添加?

0 投票
3 回答
1261 浏览

perl - 哪些推荐的 Perl 模块可以序列化 Moose 对象?

我通常使用Storablewith nstore,但现在我有一个具有但显然不喜欢的模块。CODEStorable

我发现YAML(而且YAML::XS真的无法开始工作)。我还对MooseX::Storage进行了一些实验,但没有取得多大成功。

还有其他选择吗?你会推荐什么?

0 投票
3 回答
1564 浏览

perl - 为什么 Perl 允许在 unblessed 数据结构上调用 coderefs?

执行语句$obj->method();时,perldiag表示 Perl 需要知道该方法属于哪个包。这就是为什么它需要被祝福:

无法在 unblessed 引用上调用方法“%s”

(F) 方法调用必须知道它应该在哪个包中运行。它通常从您提供的对象引用中发现这一点,但在这种情况下您没有提供对象引用。在得到祝福之前,引用不是对象引用。见 perlobj

因此,无法执行以下操作:

那为什么它可以与 coderef 一起使用?:

0 投票
2 回答
211 浏览

r - 缠结使用外部代码文件的 knitr 文件

当我有以下情况时,有没有办法在纠结的文件中包含外部代码:

(这里的外部参照是对外部文件中代码的引用)

或者

还是我需要获取外部文件并以某种方式从中工作?

当在包中包含 knitr vignettes 时,这是一个问题。在检查小插图的最后阶段,R 尝试获取纠结的文件。缺少代码会导致问题!

我正在使用 1.5 版的 knitr。

0 投票
1 回答
92 浏览

perl - 错误:“无法在标量赋值中复制到 ARRAY”

情况是我正在sub尝试使用调用者的$aand $b,类似于什么sort。大多数时候它可以工作,但是在运行单元测试时,我注意到在一种情况下,在一个包内,它不起作用。我caller用来获取调用者的包,然后设置它们$a$b如下面的简化演示所示。只需在我发现这个的包中调用这个函数,就会出现这个问题。whatever

我试图创建一个最小的包/类来重现问题,但在这种情况下不会出现问题,但我还是在下面发布了我的尝试作为一般上下文的指示:

错误信息是,

它是由确切的行触发的:

将其缩小到这个“随便”函数后,我尝试在该赋值的右侧放置各种东西,包括 arrayrefs、数组、如图所示的字符串、数字以及 undef。它接受的只有 undef、整数值和浮点值。它不接受 arrayrefs、hashrefs 或字符串。在我的例子中,在暴露这个问题的原始代码中,传递的东西是对象引用或祝福 hashrefs,如果任何 hashref 或 arrayref 分配失败,这些分配就会失败,正如你所期望的那样。

更奇怪的是,在 Perl 调试器下问题不会发生,但如果我正常运行它就会发生。

谷歌搜索这个结果没有匹配这个确切的错误,甚至几乎没有。所以第一个问题是这个错误消息是什么意思?第二个问题显然是如何前进。

我在 Linux 上使用 Perl 5.20.3,但我也在 Windows 机器上尝试了最新的 5.22 并看到了相同的行为。

0 投票
2 回答
192 浏览

c++ - C++ 4 连续 AlphaBeta 算法不是很聪明

我正在为一个学校项目制作一个 AI 控制的 alpha-beta 算法,但我的算法非常不一致。有时它会成功阻止我的所有动作,有时它会忽略我的连续 3 个动作,如此处所示。这怎么会发生,我该如何解决这个问题?

0 投票
1 回答
58 浏览

perl - 将 coderef 传递给 sort() 问题

使用以下代码,我得到了截然不同的结果。

当我打电话给他们时,我得到了截然不同的结果。

调用$sortFunc按我的预期工作,我已经验证了它的输出。的输出{$sortFunc{"date"}}真的很奇怪。如果它获得了错误的数据或运行了错误的代码,它不会像您期望的那样胡言乱语。它只是按错误的顺序排序。它已经改变了,它被“排序”了,但是以一种非常奇怪的方式。

有什么神秘$a的东西$b让我感到悲伤吗?

他们被(愚蠢地)命名的事实$sortFunc不应该是一个问题,不是吗?至少就perl而言。

$a和的范围规则有什么不同$b吗?

我已经diff编辑了代码,所以我知道它是一样的。

任何提示/线索?我正在尝试将代码移动到哈希中(它运行的地方......奇怪)。

谢谢。

-埃里克

0 投票
1 回答
53 浏览

perl - 如何使用 Moo 从对象方法中获取代码引用

我在 Perl v5.26 和 Linux 下使用 Moo (OO)。

我正在编写测试并在对象中有某种运行时字典来存储应用程序的状态。我想测试定义的代码引用是否指向该对象中的适当方法。

我的问题是为这个测试找到正确的表达方式。

细节

应用程序工具包在运行时通过几个步骤进行初始化,以标准化一些东西。这是设置:

setRuntimeexitFunc 根据变量 $RESPONSE设置 $TK internal an 。

  • $RESPONSE = 'ERROR'链接方法$exitFun = \&exitError is $TK->exitError
  • $RESPONSE = 'WARN' 链接方法$exitFun = \&exitWarn is $TK->exitWarn

在测试套件中,我想测试哪个$exitFun(代码参考)由$TK->getRuntimeValues.

似乎测试试图调用该方法。测试从方法以外的方法获取 CODE REF 的正确表达式是什么$TK->

编辑定义:

在包AppTK中,关系由字典定义: