You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Signature类命名参数别名示例运行结果异常的原因

问题原因与解答

你遇到的现象由两点Raku语法特性共同导致:

  • 你给出的签名sub named(:official($private))是Raku「命名参数内外名称不一致」的标准写法:对外暴露的调用参数名为official,参数传入后会赋值给函数内部的$private变量使用,外部无法直接操作$private变量,所有值必须通过official参数传入。
  • 你测试时调用的named :official是Raku命名参数的布尔值简写语法,:参数名固定等价于参数名 => True,所以你只要这么调用,$private拿到的永远是布尔真,自然会一直输出Official business!。
正确测试方式

如果要验证$private为假的逻辑,调用时需要主动传入official参数的假值,有两种合法写法:

  1. 完整键值对写法:named official => False
  2. 布尔否定简写:named :!official

以上两种调用方式下$private都会被赋值为布尔假,函数不会产生输出,符合你的预期。


内容的提问来源于stack exchange,提问作者Keith Hardy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:54:08