gpt4 book ai didi

warnings - 理解 pragma

转载 作者:行者123 更新时间:2023-12-04 04:31:30 26 4
gpt4 key购买 nike

我有几个关于 pragmas 的相关问题.让我开始这一系列问题的原因是试图确定是否可以禁用某些警告而不用一直到 no worries。 (我还是想担心,至少有点担心!)。我仍然对那个特定问题的答案感兴趣。
但是考虑这个问题让我意识到我并不真正理解 pragma 是如何工作的。很明显,至少一些 pragma 带有参数(例如, use isms<Perl5> )。但它们似乎不是函数。它们在整体 MOP 中处于什么位置?它们有点像 Traits 吗?还是包裹?有没有办法反省他们?查看当前有效的编译指示?
编译指示是内置于语言中的,还是用户可以添加的内容?在编写库时,我希望有一些错误/警告,用户可以选择使用 pragma 禁用这些错误/警告——这可能吗,或者它们是否仅限于在编译器中使用?如果我可以创建我的 pragma,除了 pragma 更简洁的外观之外,使用 pragma 设置某些内容与使用动态变量设置内容之间是否存在实际差异?就此而言,我们如何决定应该使用 pragma 还是变量设置哪些语言特征(例如,为什么 $*TOLERANCE 不是 pragma)?
基本上,我会对您可以提供或指向我的任何有关编译指示的信息感兴趣 - 尽管我的具体问题仍然是我是否可以有选择地关闭某些警告。

最佳答案

目前,编译指示是 hard-coded在处理use陈述。他们通常要么在与当前词法范围相关的哈希中设置一些标志,要么更改语法中动态变量的设置。
use是一个编译时构造,您只能使用编译时构造来获取它们(当前)(因此您需要 BEGIN 如果它不是 use 的一部分)。
我一直赞成脱钩use来自过去的 pragma,因为我认为它们主要是 Raku 的 Perl 根源的延续。
所有这些都将在 RakuAST 分支中更改。我不确定乔纳森·沃辛顿 (Jonathan Worthington) 对 RakuAST 上下文中的编译指示有何看法。一方面,我认为我们应该能够将编译指示“导出”到 use 的范围内。陈述。

关于warnings - 理解 pragma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68043119/

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