奇思妙想 · 2024年 4月 25日 0

丰富多彩的注释形式

52 次浏览

不同语言的注释

  • //
    • 最早BCPL,到C99/ObjC/C++/Java/C#/JS/Swift/Rust/Go/仓颉/PHP/Pascal/Kotlin.
  • #
    • Shell/Perl/Python/PHP, MySQL单行注释(其他SQL语言可能不适用)。
  • /* */
    • C/C++/ObjC/Java/C#/JS/Swift/Rust/Go/仓颉/PHP/SQL/Kotlin.
  • """ """或''' '''
    • Python块注释
  • (* *)
    • Pascal.
  • REM 或 :: 或 % <注释> %
    • Windows批处理.
  • '或Rem
    • VB
  • <!-- -->
    • HTML和XML
  • --
    • Ada / SQL单行注释,注意"--"后面需要有空格。
  • !
    • Fortran

注释/*和//的起源

  • 虽然C语言以/* */作为注释,但事实上,早在PL/I语言就已经采用/*作为注释, B语言采纳PL/I的注释形式/*, 再后来C语言吸纳。// 最早是BCPL作为单行注释,后来C++也以它作为单行注释,C89并未用它,直到C99标准才吸纳//. 需要注意,编程语言理论上可以选择任何不冲突的字符作为注释符,C系语言延续/*和//只是为了兼容和省事。

注释注意事项

  • 大部分编程语言单行注释是可以单独一行或者在行尾,也有例外:
    • VB Rem单行注释,如不是单独语句(在单行代码后面),前面必须加冒号 : 隔开
    • HTML/XML 注释不能在声明语句之前,更不能在XML属性或者元素内部。

注释和脚本标记符的优先级

对于一般的理解,似乎是注释优先,但这仅仅是想象。

  • PHP语言单行注释//或#并不意味着此行后面全部是注释,php结束标记优先级更高。
    <?php
          echo 'hello'  // this is a comment?>, really?
    ?>
    会输出:
    hello, really?
    ?>

文档注释

  • C# /** 注释 **/和 /// 注释 分别是多行和单行XML注释。
  • Kotlin 文档注释:/** 注释 */