為什麼代碼注釋中有@符號?

不要說這是標準,我想問的是為什麼標準是這樣的,而不是沒有@符號那樣的,為什麼要用這個@ 符號,不用這個@ 符號又有哪些不妥 ?

圖片出自ThinkPHP3.1.3


通過識別 @ 開頭的這些符號,javadoc 以及 Doxygen,phpdoc,以及各種 IDE 可以自動生成文檔。

就目前而言,這種文檔最大的好處是可以與 IDE 集成,如果使用這種格式的文檔,當其他人調用到這個函數時,IDE 會象顯示系統函數的幫助一樣顯示這個函數相關的文檔。

詳情請參閱:

Doxygen Manual: Documenting the code


doxygen還是別的什麼東西需要的格式吧,用來掃描代碼產生文檔的,然後假裝自己寫了文檔——我覺得在注釋裡面寫出msdn那種詳細的文檔是不現實的。


用來幫助生成文檔的. 用一類軟體比如 phpdoc 來掃描代碼文件, 來生成一個api列表.


可以這樣理解:@是一種約定的元字元,用於標示注釋中各類信息,例如形參、返回值、類、繼承關係等,方便Doc工具或者Test工具識別。

類似的還有URL中的?、#、、=等。


吶,對PHP不了解,但在Javadoc中這是一種標準,約定了一些欄位跟在@後作為特殊的標題描述。可以通過工具自動識別這些欄位並格式化為文檔。

我常見的如下:

/**
*@author 作者
*@classname 類名
*@deprecated 描述
*@see 參考
*@param 參數
*@return 返回值
*@exception 或 @throws 可能拋出的異常
*@date 日期
*@version 版本
*/

我想,可以理解為保護這些約定的欄位作為特殊的語義吧。


因為編譯器是獃獃的,你要告訴他這裡是個啥。


推薦閱讀:

JDK 1.8.0_92 Arrays.sort()方法不可用?
程序編碼都是外文的,什麼時候出中文啊,我有生之年能否看到!!!?
居然跟老師爭論如何畫UML類圖,我覺得我的沒錯,請大神進來評評理,我該怎麼辦?
在《數碼寶貝》中,光子郎用什麼語言寫代碼?
一個成熟的自動化運維繫統具備什麼功能?

TAG:編程 | 代碼 | 文檔 | 注釋編程 |