【发布时间】:2019-12-13 13:32:38
【问题描述】:
我有一个接受 slurpy 数组的函数,我想将数组的内容限制为 0 到 255 之间的 Int。因此,使用 raku 的良好文档,我发现我可以编写:
my &simp = -> *@a where { 0 <= $_.all <= 255 } { @a <<+>> 10 }
say &simp( 2, 3, 4);
# returns: [12 13 14]
如果我提供一个不在范围内的列表,那么我会正确地得到一个错误,即。
say &simp( 2,3,400 );
# Constraint type check failed in binding to parameter '@a'; expected anonymous constraint to be met but got Array ($[2, 3, 400])
是否可以以某种方式命名约束,以便错误消息可以提供更好的响应?
如果要使用多个 sub 进行编码,则将提供带有错误消息的默认 sub。但是对于内联尖点??
【问题讨论】:
-
约束希望在
{ 0 <= all($_) <= 255 }的位置,否则它正在检查数组的长度。 (而且....我不知道...我尝试了一些东西,但没有任何效果) -
@Scimon。好决定。新编辑的问题。最初,我没有包含 .all。不需要您的建议中的括号。
标签: constraints raku named