gpt4 book ai didi

constraints - 如何命名约束

转载 作者:行者123 更新时间:2023-12-02 17:48:36 25 4
gpt4 key购买 nike

我有一个接受 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])

是否可以以某种方式命名约束,以便错误消息可以提供更好的响应?

如果要使用多个子程序进行编码,则将提供带有错误消息的默认子程序。但是对于内联尖头??

最佳答案

您可以尝试使用||在where子句中生成错误运算符。

my &simp = -> *@a where { (0 <= $_.all <= 255) || die 'not in Range' } { @a <<+>> 10 }
say &simp( 2, 3, 4);
# returns: [12 13 14]

say &simp( 2,3,400 );
#not in Range

关于constraints - 如何命名约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59323628/

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