gpt4 book ai didi

perl - Mason 中的 Moose - 未设置默认数组值

转载 作者:行者123 更新时间:2023-12-02 03:38:27 25 4
gpt4 key购买 nike

我在一个组件中有一些字段(由 <& file.mi &> 包含在基本组件中,这里没什么特别的)我不知道如何为数组设置默认值。
我的定义看起来像这样:

<%class>
has 'field' => (is => 'ro', isa => 'ArrayRef[Int]', default => sub{\[1,3]});
</%class>

然后在

<%init>
dp_live($.field);
</%init>

我得到一个空数组。我在互联网上找到的任何东西似乎都不起作用。我确定这是小事,我只是看不到它。

谢谢。

最佳答案

出于某种原因,Mason 不喜欢 Types。这有效:

<%class>
has 'field' => (is => 'ro', default => sub{[1,3]});
</%class>

<pre>
<% dh $.field %>
</pre>

并打印:

[dh at .../testpoet/comps/ar.mc line 6.] [99751] [
1,
3
]

顺便说一句,你为什么使用:

default => sub{\[1,3]});

代替

default => sub{[1,3]});

编辑

我将这个问题转发给了 mason-users 邮件列表,Poet/Mason (Jonathan Swartz) 的作者很快做出回应并将 Poet 更新到 0.15 版本,修复了这个错误。

因此,如果您将 Poet 更新为 0.15

has 'field' => (is => 'ro', isa => 'ArrayRef[Int]', default => sub{[1,3]});

应该可以。

关于perl - Mason 中的 Moose - 未设置默认数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com