评论魔法

时间:2012-08-21 22:49:07

标签: language-agnostic comments

我还不是60级精灵,所以基于magic上维基百科文章中的以下句子,我得到了一个问题:

  

任何对代码有影响的评论都是神奇的。

那是怎么回事?用什么语言可以做到这一点?更具体地说,评论可以对代码产生什么影响?

3 个答案:

答案 0 :(得分:4)

魔术评论有各种形式。在Ruby中,注释可以放在文件的顶部,它指定解释器在读取文件时将使用的编码:

# -*- coding: UTF-8 -*-

more


在Unix系统中,第一行可以是一个shebang。在使用octothorpes进行注释的任何语言中,这都会导致操作系统读取的注释以决定如何解释文件

#!/bin/bash
echo hello from bash

more


在Haskell中,某些类型的注释称为编译指示可用于打开(或关闭)语言功能。

{-# LANGUAGE OverlappingInstances, NoTypeFamilies #-}

more

答案 1 :(得分:2)

我不会太担心维基百科中的那句话。我认为目的只是说评论“不应该”影响行为(因为那是评论的意思),所以如果它确实那么它必须是某种特殊情况,因此在使用中的定义是“神奇的”文章的那一部分。该文章的那一行的作者并不一定会考虑任何特定的语言。

如果您喜欢迂腐,那么评论很容易影响C中的程序行为(在此示例中包含多个换行符):

#include <stdio.h>

int main() {
    /* If this multi-line comment were deleted, then
       the line-numbers in the remainder of the file
       would be smaller. Boring magic.
    */
    printf("%d\n", __LINE__);
}

我很确定这是该评论的作者所期望的内容,因此这句话并不准确。注释语法的特殊情况是“魔术”。

答案 2 :(得分:0)

你也可以得到那些“神奇”的评论...... 如果您将这些评论留在其中,那么所有内容都可以正常运行。您删除它们然后 poof ,没有任何效果。 (这些通常是由于评论部分中间有一行未注释)

(评论是魔术)