我在组件中有一些字段(包含在<&file.mi>的基本组件中,这里没有什么花哨的),我不知道如何为数组设置默认值。
我的定义是这样的:
<%class>
has 'field' => (is => 'ro', isa => 'ArrayRef[Int]', default => sub{[1,3]});
</%class>
然后在
<%init>
dp_live($.field);
</%init>
我得到了一个空数组。我在互联网上找到的任何东西似乎都不起作用。我确定这是次要的事情,我只是看不到它。
谢谢。
出于某种原因,泥瓦匠不喜欢类型。这有效:
<%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]});
编辑
我将这个问题转发给梅森用户邮件列表,诗人/梅森(乔纳森·斯沃茨)的作者非常迅速地做出了回应,并将诗人更新到修复了该错误的 0.15 版。
所以,如果你把你的诗人更新到 0.15
has 'field' => (is => 'ro', isa => 'ArrayRef[Int]', default => sub{[1,3]});
应该工作。