是否可以注释掉包含注释的代码块?

Is it possible to comment out blocks of code that contain comments?

假设我有这样的代码

some_line_of_code
some_line_of_code
/* some comment about code */
some_line_of_code
some_line_of_code

我想像这样注释掉整个块

/*
    some_line_of_code
    some_line_of_code
    /* some comment about code */
    some_line_of_code
    some_line_of_code
*/

如您所见,即使 SO 代码解析器也不会考虑最后两行代码注释。是否可以注释掉包含注释的代码块?

编辑: 为了澄清,我需要它能够注释掉大部分代码,以检查我更改的函数是否可以在包中编译,否则在完成所有更改之前无法编译。

否,因为从第一个定界符到下一个最后一个定界符之间的所有内容都将被识别为注释(=未被编译器处理)。这就是多行注释的工作原理:如果第一个定界符 (/ *) 被识别,编译器将忽略任何内容,直到下一个最后一个定界符 (* /) 被识别。现在你知道了这一点,你应该能够理解,为什么你的第二个 / * 永远不会被编译器识别为注释分隔符。

但是,您可以在多行评论区内用特殊字符或串联标记评论,以将评论分成不同的部分。

你可以使用--

所以这段代码:

some_line_of_code some_line_of_code -- some comment about code some_line_of_code some_line_of_code

将是:

--some_line_of_code --some_line_of_code ---- some comment about code --some_line_of_code --some_line_of_code

正如@Acroneos 所说,没有办法。这是大多数编程语言的常见行为。词法分析器可以识别注释和其他标记。词法分析器使用上下文无关语法。即词法通常只能识别正则表达式。

您仍然可以使用 C/C++ 方法 (#if 0/#endif)。参见 Conditional compilation。但是看起来不像"so nice".

begin
 something1;
 $if false $then
  something2;
 $endif;
endl;

在 SQL Developer 中,我突出显示 PL/SQL 中我想要注释的所有行并使用 Ctrl + /.

显然,您想要一种快速注释和取消注释多行的方法。这会将 -- 放在您突出显示的每一行的前面。执行相同的命令取消注释。

评论一行的快捷方式: 命令 + 选项 + / (在 Mac)

您可以通过工具 > 首选项 > 键配置(编辑/选择/注释行)分配功能键。