Perl 6 如何评估真实性?

2023-12-23

在阅读有关 Perl 6 的内容时,我看到一个被大肆宣传的功能,您不再需要这样做:

return "0 but true";

...但可以这样做:

return 0 but True;

如果是这样的话,Perl 6 中的 Truth 是如何工作的呢?在 Perl 5 中,这非常简单:0、"" 和 undef 都是 false,其他都是 true。

Perl 6 中布尔上下文的规则是什么?


Perl 6 现在通过向对象询问问题而不是查看其值来评估真相。值不是对象。这是我喜欢其他对象语言的东西,并且很高兴在 Perl 中拥有它:我可以决定对象如何响应并可以改变它。正如 ysth 所说,你可以在 Perl 5 中通过重载来做到这一点,但我总觉得这样做之后我必须洗手。 :)

如果您不采取任何措施来改变这一点,Perl 6 的行为方式与 Perl 5 相同,因此您得到的惊喜最少。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl 6 如何评估真实性? 的相关文章

  • 在 raku REPL 中定义后缀运算符时出现问题

    如果我在 raku 中有以下程序 它运行良好 trabajando en piensa en raku on master via v2 6 5 cat factorial raku sub factorial n 1 n sub post
  • 如何在 Windows 上编译共享库,以便可以与 raku 中的 NativeCall 一起使用?

    我正在尝试在 Windows 上编译一个 DLL 库 可以与本地调用 https docs raku org language nativecall在乐 这是一个最小的 C 代码 my c dll c include
  • Perl 6 有无限的 Int 吗?

    我有一个任务 我想找到距离目标最近的字符串 因此 编辑距离 而不是同时生成它们 我想我应该使用高水位线技术 我猜是低水位线 同时初始化最近的编辑距离Inf这样任何编辑距离都会更近 use Text Levenshtein my string
  • 了解供应点块(按需供应)

    我无法理解我的目的supply 他们创建的块 按需供应 Live供应 即来自Supplier并在任何时候获得新的值Supplier发出一个值 对我来说很有意义 它们是异步流的一种版本 我可以用它来将消息从一个或多个发送者广播到一个或多个接收
  • 对象创建中的解构赋值

    和我的一样上一个问题 https stackoverflow com questions 69137422 confusing fmt behavior with nested lists 这是一个我无法判断我对 Raku 语义的理解是否遇
  • Perl 6 中有快速并行“for”循环吗?

    给定一些对 1 到 500000 之间的每个数字进行一些数学 转换的代码 我们有选择 简单的for循环 for 500000 gt i my result i 2 Str 在我的不科学基准测试中 这需要 2 8 秒 最规范的并行版本在一个P
  • 如何将类方法作为参数传递给perl 6中类的另一个方法

    我有一个如下所示的脚本 目的是使用不同的过滤方法来过滤列表 这是代码 2 3 class list filter 4 has my list 1 20 5 6 method filter l return True 7 8 filter m
  • CommaIde 上未声明子例程“say”

    我用 CommaIde 打开了这个简单的脚本 usr bin env perl6 my str foobar say str IDE 突出显示单词 say 并显示错误 子程序说未定义 但是 如果我执行该脚本 它运行正常 其他核心方法 如 p
  • Perl 6 对象如何找到可能位于父类或角色中的多重方法?

    考虑这个例子 其中子类有一个没有签名的 multi 方法和一个带有 slurpy 参数的方法 class Foo multi method do it put Default multi method do it Int n put Int
  • 测试通过函数传递到 if 语句的真值或假值参数

    我也在这方面画了一个空白 如果有人可以帮助我理解为什么我的代码没有打印预期的输出 我将不胜感激 而不是提供答案 def bool to str bval if bval is True mytest Yes else mytest No r
  • 如何在action方法中获取匹配的token参数值?

    如果我的语法中有这样的内容 grammar G token tab indent Int level Using just level would require to have the same effect so use a code
  • 理解字符串的真实性

    我知道Python内置类型有一个 真实性 值 空字符串被认为是False 同时考虑任何非空字符串True 这是有道理的 我可以使用内置函数检查这一点bool gt gt gt bool False gt gt gt bool dog Tru
  • 在 Perl 6 中查找上周五的日期?

    我想生成一个从周一到周四的上周五结束的序列 如果该序列从周六和周日开始 则生成上周五结束的序列 也就是说 假设今天是2018 05 09 那么上周五是2018 05 04 如果今天是2018 05 12 那么上周五是also 2018 05
  • 如何在 Perl 6 中追加到文件?

    我正在尝试这个和其他一些事情 但它每次都会截断文件 my file primes txt sub MAIN Int D low Int D high where gt low unless my fh open file w append
  • 如何将 raku -e 和 -n 与多个文件 glob 一起使用

    我想在 Windows 上的 raku 中执行以下操作 raku n e say if mydatabegin file 无法打开文件 C file 参数无效 glob 不被解释为 glob 我认为这是因为 Windows 要求你的程序自己
  • Perl 6 语法与我认为的不匹配

    我正在做代码出现第 9 天 http adventofcode com 2017 day 9 您坐了一会儿并记录了流的一部分 您的谜题输入 这些字符代表组 开头的序列 并结束于 在一个组内 有零个或多个其他东西 用逗号分隔 要么是另一个组
  • 在 macOS 上运行 Comma IDE 时找不到匹配的虚拟机

    我安装了 Comma IDEthis https commaide com download链接 但当我尝试通过双击应用程序文件夹中 Finder 中的应用程序图标来运行它时 出现错误 未找到匹配的 VM 需要 Java 1 8 或更高版本
  • 如何从命令行提供非 slurpy 数组或命名数组?

    首先 raku perl6 非常棒 克罗也是如此 只花了一个周末就坠入爱河 然而现在我偶然发现了一些非常简单的事情 如果我在多重调度 MAIN 中使用 slurpy 参数 则会被识别并完美运行 multi MAIN config add h
  • 在采用 ARM 处理器架构的 Android 上安装 Rakudo

    我正在尝试使用 Termux 在采用 armv7l 处理器架构的 Android 上安装 Rakudo 我尝试从源代码编译 但没有成功 然后有人指出了Termux用户没有用 https github com its pointless 和他
  • 如何让 Raku 中的承诺超时?

    我知道我可以安排Promise在给定的时间内保存 my promise Promise in seconds 但我怎样才能安排它被破坏呢 具体来说 我正在考虑一个将 超时 的承诺 以便它必须保留一定的时间 否则它将失败 我可以和另一个人一起

随机推荐