gpt4 book ai didi

raku - 用 qq 括号分隔符不要在 Raku 中插入代码

转载 作者:行者123 更新时间:2023-12-04 11:38:11 28 4
gpt4 key购买 nike

对不起,如果这在某处记录,但我一直无法找到它。将括号定界符与 qq 一起使用时, 代码未插值:
qq.raku

#!/usr/bin/env raku

say qq{"Two plus two": { 2 + 2 }};
say qq["Two plus two": { 2 + 2 }];
$ ./qq.raku 
"Two plus two": { 2 + 2 }
"Two plus two": 4
显然,这没什么大不了的,因为我可以使用一组不同的分隔符,但我遇到了它并想我会问。
更新
正如@raiph 指出的那样,我忘了提出实际问题:这是它应该工作的方式吗?

最佳答案

引用语言“nibbler”(通过引用字符串吃掉它的语法的一点)看起来像这样:

    [
<!stopper>
[
|| <starter> <nibbler> <stopper>
|| <escape>
|| .
]
]*
也就是说,在我们看到塞子之前,先吃:
  • 一个启动器(在你的例子中是开头 {),然后是一些内部的东西,然后是一个塞子(});这允许在字符串中嵌套构造
  • 转义(闭包插值被认为是一种转义)
  • 任何其他字符

  • 语法中的这种排序意味着所选引用开头/结尾的嵌套将始终胜过转义。这个问题是在语言设计的时候讨论过的;毕竟,我们可以对语法中的交替进行重新排序,以使逃脱获胜。然而,总的来说,人们认为启动器/停止器的选择是比引用语言的一般属性更本地化的决定,因此应该优先。 (这也与引用语言的构造方式一致:我们采用基本的引用字符串语法并将 starter/stopper 方法混合到其中。)

    关于raku - 用 qq 括号分隔符不要在 Raku 中插入代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68885852/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com