加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – 使用SourceBaby的语法和正确方法是什么,这是Perl 6相关

发布时间:2020-12-15 23:22:56 所属栏目:大数据 来源:网络整理
导读:SourceBaby显然是Whateverable机器人之一,在#perl6和其他IRC频道中运行,能够达到 locate the source of Perl 6 functions.然而,语法很难弄清楚.要找到lazy-if,这是Any的方法,你必须这样做(就像链接一样). s: Any,"lazy-if",(1) 我一直试图谷歌指示,但我找不
SourceBaby显然是Whateverable机器人之一,在#perl6和其他IRC频道中运行,能够达到 locate the source of Perl 6 functions.然而,语法很难弄清楚.要找到lazy-if,这是Any的方法,你必须这样做(就像链接一样).

s: Any,"lazy-if",(1)

我一直试图谷歌指示,但我找不到它们. It’s not in the official list of Whateverable bots,either.任何人都可以帮忙吗?

解决方法

It’s not in the official list of Whateverable bots,either.

那是’因为它不是一个可以使用的机器人.还有其他几个社区机器人不是Whateverables,包括huggable和buggable机器人.

向机器人寻求帮助可以提示您在哪里寻找:

<Zoffix>    SourceBaby: help
<SourceBaby>    Zoffix,Use s: trigger with args to give to sourcery
    sub. e.g. s: Int,'base'. 
    See http://modules.perl6.org/dist/CoreHackers::Sourcery

CoreHackers::Sourcery模块只是Code对象.file.line方法的核心功能的薄包装.它们报告所有例程的例程定义的位置,对于核心例程,它们有这个特殊的SETTING :: string,它显示了rakudo‘s源(或者你正在使用的任何编译器)中的位置:

say "{.file}:{.line}" with Any.^lookup: "lazy-if"
# SETTING::src/core/Any.pm6:472

机器人是CoreHackers::Sourcery sourcery routine左右的薄包装.这就是触发机器人时所做的一切.你实际上是在键入任意Perl 6代码,它将作为args插入到该例程中,然后逐渐消失.

两种呼叫形式是:

:(Callable:D to-lookup,Capture args?) 
:(Mu object,Str:D method-name,Capture args?)

第一个是1-2 arg表单,通常用于子程序:

<Zoffix> s: &say
<SourceBaby> Zoffix,Sauce is at https://github.com/rakudo/rakudo/blob/d1d31fd57/src/core/io_operators.pm6#L10

第二个是2-3个arg表单,通常用于对象上的方法:

<Zoffix> s: $*ERR,'print'
<SourceBaby> Zoffix,Sauce is at https://github.com/rakudo/rakudo/blob/d1d31fd57/src/core/IO/Handle.pm6#L604

两种形式的最后一个arg是捕获您想要调用callable的参数.它是可选的,在这种情况下,您将获得多个例程的proto位置.所以通常你会指定args来获取特定候选人的位置:

<Zoffix> s: $*ERR,'print',(1,2,3)
<SourceBaby> Zoffix,Sauce is at https://github.com/rakudo/rakudo/blob/d1d31fd57/src/core/IO/Handle.pm6#L609

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读