是否可以加上?“;断言;作为Delphi中的关键字?

是否可以加上?“;断言;作为Delphi中的关键字?,delphi,ide,assert,keyword,Delphi,Ide,Assert,Keyword,我在代码中编写了两个“assert(…)”,以确保满足前置和后置条件。我们可以告诉Delphi编译器,在调试版本中是否使用断言进行编译,在发布版本中是否不使用断言 我想知道,如果可能的话,是否可以像其他Pascal关键字一样突出显示“assert”?我不这么认为。在Tools->Options->Editor Options->Source Options下,您可以打开或关闭语法高亮显示,但我看不到任何选项可以让您定义要高亮显示的语法。否。Delphi的高亮显示不能这样配置。您可以配置关键字的颜

我在代码中编写了两个“assert(…)”,以确保满足前置和后置条件。我们可以告诉Delphi编译器,在调试版本中是否使用断言进行编译,在发布版本中是否不使用断言


我想知道,如果可能的话,是否可以像其他Pascal关键字一样突出显示“assert”?

我不这么认为。在
Tools->Options->Editor Options->Source Options
下,您可以打开或关闭语法高亮显示,但我看不到任何选项可以让您定义要高亮显示的语法。

否。Delphi的高亮显示不能这样配置。您可以配置关键字的颜色,但无法配置哪些单词算作关键字

如果您想将此问题作为功能请求,请将其提交给Embarcadero's。堆栈溢出不是进行此操作的场所


由于您正在检查前置条件和后置条件,因此即使不突出显示,您的断言也应该很容易找到:它们将是任何函数中的第一个和最后一个语句。

实际上断言不是保留字
您可以创建自己的断言过程或函数,即使不建议这样做,它也会编译。

因此,Assert不能突出显示。

我总是用大写字母键入退出函数,使其突出显示。你也可以用assert来做同样的尝试。

assert和其他许多看似“保留字”的词一样,实际上是所谓的“标准函数”


Exit、Break、Continue和Assert是编译器不保留的符号示例,它们作为符号存在于“系统”单元名称空间中。原因是Delphi(或者更具体地说是turbopascal)最初没有Exit、Break、Continue或Assert的概念。许多现有用户可能已经将这些标识符用于他们自己的库。如果我们做了这些保留字,我们就会破坏许多现有的应用程序。通过将它们创建为“标准函数”并将其“作用域”到系统单元,我们可以在不破坏现有代码的情况下提供添加的功能。在某些具有(比如)自身退出功能的库中,程序对该标识符的使用不会受到影响。但是,如果程序员明确希望使用Exit标准函数,您可以完全限定标识符,如“System.Exit”,编译器将生成代码退出当前函数,而不是调用范围更近的Exit。

也许这会更好,如果下一个Delphi可以在代码高亮显示中增加更多的灵活性,您可以解释为什么编译器不将ASSERT()视为关键字,但这并不是highlighter不能将它和类似的流控制语句作为单独案例处理的原因。对于“是否有可能将这些语句视为语法高亮显示的保留字”的简单回答是“是”,并且您可以非常轻松地做到这一点。因此,您的答案是错误的,因为它将荧光笔的行为与编译器的行为混为一谈。语法荧光笔对上下文不敏感,不足以知道特定标识符是系统。退出版本还是来自另一个更近范围的标识符。-1我否决了此答案,因为它不回答问题是,是否有可能突出显示该单词,并解释为什么
Assert
没有突出显示。我几年前就提交了这个请求。QC就是这样的黑洞:QC#20639。它被关闭为“已解决”,并标记为重新测试,但似乎没有任何变化。而且Emborcaderogeraprise想知道为什么人们不用QC。。。。