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 如何评估真实性? 的相关文章

  • Perl 6 如何评估真实性?

    在阅读有关 Perl 6 的内容时 我看到一个被大肆宣传的功能 您不再需要这样做 return 0 but true 但可以这样做 return 0 but True 如果是这样的话 Perl 6 中的 Truth 是如何工作的呢 在 Pe
  • Perl6:使用俚语添加印记

    我正在尝试添加 作为 标量的别名 我认为使用俚语来实现这一点是可行的 但 perl6 doc 根本没有提到俚语 我已阅读以下内容 https perlgeek de en article mutable grammar for perl 6
  • require 的行为(静态 + 动态)[ RAKU ]

    我的问题与以下行为有关require当与所需命名空间的静态或动态解析一起使用时 我将尝试表达我对事物的理解 1 将 require 与文字一起使用 require MODULE 在这种情况下 编译器会检查 MODULE 是否已被声明为符号
  • Perl 6 中什么时候“race”是值得的?

    race https docs perl6 org routine race自动将可迭代对象上的操作划分为线程 例如 Bool roll xx 2000 race sum 会自动将 2000 长数组的总和分成 4 个线程 然而 基准测试显示
  • Perl 6 的 shell() 使用哪个 shell?

    Perl 6 的shell https docs perl6 org routine shell向 shell 发送命令 但没有说明那是什么 我一直得到bash在我的机器上 但我不知道我是否可以信赖它 perl6 e shell Q ech
  • 如何使用 Perl 6 中的 Perl 5 模块?

    是从 Rakudo Perl 6 使用 CPAN 的 Perl 5 模块的方法吗 例如 如何在 Perl 6 中使用尚未移植的古老 Perl 5 模块 CGI Update 这段来自早期 Perl 6 模块的时髦代码是什么 use CGI
  • Perl 6 中有快速并行“for”循环吗?

    给定一些对 1 到 500000 之间的每个数字进行一些数学 转换的代码 我们有选择 简单的for循环 for 500000 gt i my result i 2 Str 在我的不科学基准测试中 这需要 2 8 秒 最规范的并行版本在一个P
  • 如何重建已下载的编辑过的 Raku 模块?

    我已经安装了 Time Duration 但它的大部分测试都失败了 我希望能够通过我的编辑从本地存储的模块重建模块 我编辑了包含该模块的文件 对应于 Duration pm6 perl6 sources D00C101A0157E3EAC4
  • “连续两项”错误

    我正在尝试编写如下紧凑的行 代码是从使用动态作用域特殊变量 IN 读取 STDIN 的脚本中提取的 你能告诉我如何正确地写这一行吗 这有效 for IN lines last when say VERBOSE is the string i
  • CommaIde 上未声明子例程“say”

    我用 CommaIde 打开了这个简单的脚本 usr bin env perl6 my str foobar say str IDE 突出显示单词 say 并显示错误 子程序说未定义 但是 如果我执行该脚本 它运行正常 其他核心方法 如 p
  • 是否可以从另一个 Promise 终止一个 Promise 的代码块?

    我写了这个测试程序 await Promise anyof Promise allof 5 map start sleep 10 say done Promise in 5 then say ouch sleep 10 当第二个 Promi
  • Inline::Perl5 的列表返回给出项目的计数,而不是列表

    一些简单的 Inline Perl5 代码返回一个列表 但它似乎返回项目的计数而不是实际的列表 更改涉及的项目数量会更改计数 use Inline Perl5 my p5 Inline Perl5 new my perl5 code q t
  • 在 Ubuntu 15.10 上安装 Perl6 和 Panda。 bootstrap.pl 的问题

    我正在尝试在 Ubuntu 15 10 上安装 Panda 首先我尝试过 git clone recursive git github com tadzik panda git cd panda perl6 bootstrap pl 最后一
  • raku REPL 在 WIndows 8 下的“cygwin”上似乎没有响应

    I have cygwin在 Windows 8 下 我已经安装并运行raku我理解这就是 Perl6 我想打印一些字符串和数字 但是say不做这项工作 请参阅下面的黑色片段 它只是不做任何事情 与此处描述的不同 hynek0 hynek
  • 理解字符串的真实性

    我知道Python内置类型有一个 真实性 值 空字符串被认为是False 同时考虑任何非空字符串True 这是有道理的 我可以使用内置函数检查这一点bool gt gt gt bool False gt gt gt bool dog Tru
  • 混淆 .fmt 行为与嵌套列表

    The docs https docs raku org routine fmt比如说fmt 返回一个字符串 其中列表中的每个元素都已根据以下格式进行格式化 format 第一个参数 并且每个元素由 separator 第二个论点 根据该描
  • 使用特征应用代理

    我想为一个属性编写一个特征 为它提供一个代理 这样我就可以操纵 sees 背后的值 甚至可以为 direct access在一个班级内 这就是我现在所拥有的 但正如您所看到的 实际的 get set 或 store fetch 方法从未被调
  • 对模块进行单元测试时如何模拟导入的子例程

    考虑一个导出连接到互联网并返回结果的子例程的模块 unit module A sub download is export result from internet Not the actual implementation obvious
  • 在采用 ARM 处理器架构的 Android 上安装 Rakudo

    我正在尝试使用 Termux 在采用 armv7l 处理器架构的 Android 上安装 Rakudo 我尝试从源代码编译 但没有成功 然后有人指出了Termux用户没有用 https github com its pointless 和他
  • Perl 6 字符将匹配哪些 Unicode 属性?

    The uniprop返回单个属性 put join A uniprop 我取回一项财产 一般类别 Lu 环顾四周 我没有找到一种方法来获取所有其他属性 包括派生属性 例如ID Start等等 我缺少什么 我知道我可以查看数据文件 但我宁愿

随机推荐