保留嵌套命名参数的默认值

2023-11-26

我怀疑这个问题很容易回答,而且答案是否定的。但是,我想确保我没有遗漏任何东西。

考虑以下代码:

sub f(:$a = 'foo') { say $a }
sub g(:$a) { f :$a }
g();  # OUTPUT: «(Any)»

有没有一个好的方法来更改签名/正文&f or &g这样就打印出foo代替Any?

我知道有两种方法&f使用默认值$a,但他们都不是伟大的。

选项1:

sub f(:$a = 'foo') { say $a }
multi g(:$a) { f :$a }
multi g()    { f }
g();  # OUTPUT: «foo»

选项2:

sub f(:$a = 'foo') { say $a }
sub g(:$a) { f |(:$a with $a) }
g();  # OUTPUT: «foo»

这些都不像是great方法,所以我希望有人能向我展示一种我所缺少的更优雅的方法。另一方面,这两者都有效,所以如果这只是一个稍微不优雅的角落(而且是一个非常小的角落),那肯定不会有什么大不了的。


我会使用选项 1,或者如果子“g”总是只调用子“f”,来创建捕获all参数,然后将其传递:

sub f(str :$a = 'foo') { say $a }
sub g(|c) { f |c }
g a => "bar";  # "bar"
g;             # "foo"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保留嵌套命名参数的默认值 的相关文章

  • 当我尝试使用 Rakudo 运行脚本时,为什么会出现“被零除”错误?

    我刚刚构建了 Rakudo 和 Parrot 这样我就可以使用它并开始学习 Perl 6 我下载了 Perl 6 书 并愉快地输入了第一个演示程序 网球锦标赛示例 当我尝试运行该程序时 出现错误 Divide by zero current
  • 使用 NativeCall 将 C 库函数合并到 Perl6 中

    我正在尝试使用lgamma来自 C 的math h在 Perl6 中 我如何将其合并到 Perl6 中 我努力了 use NativeCall sub lgamma num64 gt num64 is native Str say lgam
  • 如果Python中用户输入为空,如何定义默认值?

    如果用户从键盘输入值 我必须设置默认值 这是用户可以输入值的代码 input int raw input Enter the inputs Here the value will be assigned to a variable inpu
  • 具有类型约束的无符号“变量”是否可以重新绑定? [复制]

    这个问题在这里已经有答案了 EDIT 关闭以支持https stackoverflow com questions 69231506 what are the rules for re binding 这是我在更清楚地理解我在这个问题中想问
  • 使用 XSL 显示 XSD 定义的属性默认值

    我认为这应该很容易找到 但经过一番搜索后 我发现这可能最好明确定义 在我的 XSD 中 我定义了一个从字符串派生的枚举 在复杂类型中 我定义了引用此枚举的属性 并具有默认值 在我的 XSL 中 我希望为未显式设置属性的元素显示该属性的默认值
  • 更改 $*DISTRO 值以进行测试

    我需要测试一个功能包括这一行 https github com rakudo rakudo commit 0a2eef8fb0adb24164999a2b71c415fd11fe748a diff 4ce1542a6f014c9a003fe
  • Objective-C 结构体的默认值以及如何测试

    我正在尝试测试属性是否已设置 我知道我拥有的对象 CGRect ppGoalFrame LocalPlaySetup localPlaySetup 我可以测试 if localPlaySetup nil 但如果我尝试用 nil 或 NULL
  • Spring中指定默认属性值为NULL

    我想在 Spring XML 配置文件中定义默认属性值 我希望这个默认值是null 像这样的东西
  • 如何在Raku中逐行读取gz文件

    我正在尝试在 Raku 中逐行读取一个巨大的 gz 文件 我正在尝试做这样的事情 my file huge file gz for file IO lines gt line say line 但这给出了我的 UTF 8 格式错误的错误 我
  • 如何将perl6文件编译为exe

    我正在使用基于 Windows 上 MoarVM 构建的 perl6 版本 我创建了一些 perl6 文件并想将其编译为 exe 我尝试了以下方法 perl6 target MAST r pl gt r 现在我想将 r 编译为可执行文件 我
  • 语法的替代版本无法按照我的意愿工作

    这段代码解析 string如我所愿 usr bin env raku my string q to END aaa bbb this has trailing spaces which I want to keep kjkjsdf kjkd
  • Perl 6 语法与我认为的不匹配

    我正在做代码出现第 9 天 http adventofcode com 2017 day 9 您坐了一会儿并记录了流的一部分 您的谜题输入 这些字符代表组 开头的序列 并结束于 在一个组内 有零个或多个其他东西 用逗号分隔 要么是另一个组
  • ruby 默认参数习惯用法

    当您想要一个函数有一个默认参数 但该参数依赖于另一个参数 另一个变量时 Ruby 中的习惯用法是什么 例如 在Python中 一个例子是 def insort right a x lo 0 hi None if hi is None hi
  • JQuery ajax调用默认超时值

    我收到了无法复制的错误报告 但 ajax 调用超时是当前最好的猜测 所以我试图找出 jQuery 超时的默认值 ajax 称呼 有人有主意吗 在 jQuery 文档中找不到它 似乎没有标准化的默认值 我感觉默认是0 超时事件完全取决于浏览器
  • 设置 C# 可选参数的默认值

    每当我尝试将可选参数的默认值设置为资源文件中的某些内容时 我都会收到以下编译时错误 message 的默认参数值必须是编译时常量 有什么方法可以改变资源文件的工作方式来实现这一点吗 public void ValidationError s
  • 还有其他原因说明我应该考虑忽略发出默认值是一种不好的做法吗?

    我已经使用 WCF 一段时间了 并且在客户端和服务器倾向于共同发布的地方 也就是说 新版本几乎总是同时发布 互操作性和版本控制不是问题 至少在这种情况下 MSDN 文档 DataMemberAttribute EmitDefaultValu
  • 逗号 IDE 中的“SDK 未设置”

    我正在尝试使用 Comma IDE 进行调试 但遇到了这个问题 9 20 Error running Primera SDK is not set Primera是我创建的配置 大部分使用默认值 我浏览了菜单 但没有找到在哪里可以设置 SD
  • 如何防止 Nil 将容器恢复为其默认值?

    我正在实现一个简单的链表并表示没有下一个节点的事实 我正在使用该值Nil 问题是当分配给容器时 Nil将尝试将容器恢复为其默认值 这意味着我需要使用容器的默认值或Any确定是否已到达链表的末尾 不过 我还是想用Nil 如果只是为了其明确的意
  • 如何禁用 Perl 6 REPL 创建 .precomp

    每次我跑步perl6进入REPL模式 它创建了一个 precomp目录 这也会减慢提示的出现速度 如果 precomp目录已经存在 提示几乎立即出现 否则perl6创建它需要几秒钟 有没有办法禁用此功能 检查您是否有PERL6LIB环境变量
  • Python str.format() 方法的默认 kwarg 值

    我希望尝试使现有字符串的复数化尽可能简单 并且想知道是否有可能得到str format 在查找 kwargs 时解释默认值 这是一个例子 string number of sheep sheep has run away dict comp

随机推荐

  • Datadog Grok 解析 - 从嵌套 JSON 中提取字段

    是否可以提取嵌套在日志中的 json 字段 我一直在研究的示例 thread 191555 app main cid 2cacd6f9 546d 41ew a7ce d5d41b39eb8f uid e6ffc3b0 2f39 44f7 8
  • 如何获取已连接 WiFi android 的信号强度?

    我想获取与我的设备连接的 wifi 的信号强度 这可能很容易 但我是初学者 这是作业 如何获得 我尝试了这段代码 但这不起作用 registerReceiver new BroadcastReceiver Override public v
  • 将多个项目发布到Azure网站上的不同位置

    请随意推荐一个更好的标题或更改我下面的解释 我正在使用 Windows Azure 网站 第一次 并将其连接到 Visual Studio Online 中的解决方案 也是我第一次 我还能够连接到 Visual Studio Online
  • 如何使用 django-storages 生成预签名的 S3 url?

    我有一个 Django 表单 它通过 django storages 库将文件保存到 s3 并且工作正常 如何生成并返回预签名 URL 以便用户可以在文件上传后临时访问该文件 这是由 django storages 抽象的还是我必须使用 b
  • Node.js 中的声明 var 是什么?

    在这段nodejs代码中 declare var process NodeJS Process declare var global NodeJS Global declare var console Console declare var
  • 如何防止 csv.DictWriter() 或 writerow() 四舍五入我的浮动?

    我有一本字典想要写入 csv 文件 但是当我将字典中的浮点数写入文件时 它们会被四舍五入 我想保持最大精度 舍入发生在哪里以及如何防止它发生 我做了什么 我跟着DictWriter 示例在这里我正在 Mac 上运行 Python 2 6 1
  • 承诺返回未定义

    我正在尝试使用 Promise 将 ajax 请求发送到 php 脚本 该脚本检查服务器上是否存在文件并返回布尔值 我有以下代码 但 fileExists 函数始终返回未定义 如何将 Promise 包装在函数中并让该函数返回 Promis
  • 使用cloudwatch判断linux服务是否正在运行

    假设我有一个带有服务的 ec2 实例 etc init my service conf有内容 script exec my exec end script 我如何监控该 ec2 实例 以便如果my service停止运行我可以采取行动吗 您
  • 如何在 const 字符串中包含枚举值?

    from 这个问题 我知道一个const string可以是以下的串联const事物 现在 枚举只是一组连续的整数 不是吗 那么为什么这样做不行呢 const string blah blah MyEnum Value1 或这个 const
  • 如何将html存储到mysql数据库中

    我试图将 HTML 存储在数据库中 因此当我从数据库检索表单时 我需要将其显示为表单而不是文本 有没有办法做到这一点 这是表格 form
  • 如何使一个方法接受任何类型的数组作为参数?

    我希望能够将任何数组类型作为方法中的参数 public void foo Array array System out println array length 有没有一种方法可以用相同的方法传递 String 或 int 数组 Use g
  • tomcat服务器无法启动STS中的服务器和应用程序[重复]

    这个问题在这里已经有答案了 当我运行 Spring MVC 应用程序时 出现此异常并且服务器无法启动 请帮我解决这个问题 异常堆栈跟踪 Jan 24 2013 11 33 59 AM org apache catalina startup
  • python 惯用的 python for 循环 if else 语句

    我该如何使用else惯用的 Python 语句for环形 没有else我可以写例如 res i for i in 1 2 3 4 5 if i lt 4 结果是 1 2 3 上述代码的正常形式是 res for i in 1 2 3 4 5
  • 如何通过鼠标悬停播放/暂停多个视频

    我有一个包含很多视频的页面并希望播放 每个视频上mouseOver并暂停mouseOut 它正在与 video1 一起使用 但我想与 video2 一起使用 依此类推 div style text align center div
  • 保护 openpyxl 中的工作簿

    我尝试使用 openpyxl 保护 Excel 工作簿 到目前为止 我已经研究了不同的 可能相关的课程 但我找不到set password方法类似于工作表 恰好有工作簿 保护我尝试过运气的模块 我的代码归结为绝对相关的最小值如下 from
  • 自定义ClassLoader,如何使用?

    我正在尝试使用自定义类加载器来加载应用程序所需的所有依赖项 我已经在网站之后实现了 customerClassLoader https www javacodegeeks com 2013 03 java handmade classloa
  • JavaScript 闭包

    我仍然对 JavaScript 中的闭包概念感到困惑 我的观点是 闭包是内部函数在母函数返回后访问其母函数中创建的变量的能力 但我仍然很困惑 如果我们可以在函数内部创建变量 为什么我们必须创建内部函数来保护局部变量 我们需要创建一个内部函数
  • dom 节点太多导致 JavaScript 性能问题?

    我目前正在调试一个 ajax 聊天 它会无休止地用 DOM 元素填充页面 如果你的聊天持续了大约 3 个小时 你最终会发现上帝现在有多少个 DOM 节点 相关问题有哪些extremeDOM 的使用 UI 是否有可能变得完全无响应 尤其是在
  • 在 python 中从平面列表创建嵌套字典的通用方法

    我正在寻找最简单的generic转换此 python 列表的方法 x foo A bar R baz X foo A bar R baz Y foo B bar S baz X foo A bar S baz Y foo C bar R b
  • 保留嵌套命名参数的默认值

    我怀疑这个问题很容易回答 而且答案是否定的 但是 我想确保我没有遗漏任何东西 考虑以下代码 sub f a foo say a sub g a f a g OUTPUT Any 有没有一个好的方法来更改签名 正文 f or g这样就打印出f