Raku

2021-02-17 22:16

中类似Haskell的模式匹配Haskell和Rust(可能还有我不知道的其他语言)有一个他们称之为“模式匹配”的命运;。下面是一个例子Haskell:data事件=HoldKey Char

解答动态

  • PressKey Char

    • Err StringsomeFunc=let someEventlt;-case someEvent of HoldKey keySym-gt;process keySymErr Err-lt;aquot;不支持";}} alas不编译。所以我是不是漏掉了什么,或者罗库可以用其他的方式来表达?

      • 您试图使用一个不需要签名的签名。
        签名更可能是块的一部分,因此看起来更像此:
        给定Hold.new(:keygt;){按住时-gt;(:$key){说出$key}错误时-quot;不支持lt;aquot;Unsupportedlt;aquot;Unsupportedlt;aquot;unsupportedlt;---如果没有注释输出,则编译时失败1是的,以上代码在语法上是“off”;。假设RakuAST落地,那么实现一个更好的语法可能会特别直接。也许:
        bind Hold.new(:keygt;){-gt;Press(:$key){say$key}-quot;unsupportedgt;。
        I注意到您在示例中引入了OO。(并称为multifunctions multimethods。)为了清楚起见,您不需要使用Raku.
        中的签名使用对象来进行模式匹配

        • End

        免责声明:

        本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。