我正在尋找一種C(++)#if 0
類似的方式來評論Scala源代碼的全部內容,以便在實驗或過期的代碼中保留一段時間。在Scala中註釋掉部分代碼
我嘗試了兩種選擇,並希望聽到你使用什麼,如果你想出了更好的東西?
// Simply block-marking N lines by '//' is one way...
// <tags> """ anything
我的編輯器使這個很簡單,但它不是真正的東西。它很容易與實際的單行註釋混在一起。
後來我想通有原生XML支持,所以:在XML作品
<!--
... did not work
-->
包裝,除非你塊內有<tags>
:
class none { val a= <ignore>
...
cannot have //<tags> <here> (not even in end-of-line comments!)
</ignore> }
同爲多行字符串似乎有種最好的,但是有很多樣板(Scala中不時髦)讓編譯器很高興(少一些,如果你是在一個類或一個對象中做這個):
object none { val ignore= """ This seems like
...
<truly> <anything goes> but three "'s of course
""" }
'正確' 的方式做到這一點可能是:
/***
/*
... works but not properly syntax highlighed in SubEthaEdit (or StackOverflow)
*/
***/
..但該/*
和*/
只,而不是即/***
到***/
匹配。這意味着塊內的評論需要平衡。而且 - SubEthaEdit當前的Scala語法突出顯示模式在此失敗了。
作爲比較,Lua具有--[==[
匹配]==]
等等。我覺得我被寵壞了?
所以 - 我有監督有一些有用的技巧嗎?
我不知道爲什麼你需要支持'/ ***/* ... */*** /'嵌套式塊 –
它可能會更好,只是刪除代碼,如果你想獲得它回到某個時候使用您的版本控制系統(或您的IDE中的本地歷史記錄)。一旦你熟悉它,並且更乾淨,它一樣快。評論是隨着時間的推移累積污漬的好方法,即使是最好的意圖,它也很少被清理乾淨。 –
你能澄清一下你的用例嗎?你說「保持一段時間的實驗或過期代碼。」但不清楚爲什麼只使用/ * * /還不夠好。 正如其他人指出的,你想避免保留大量的代碼不被編譯,因爲你會有代碼腐爛的問題。因此,您可能需要考慮將文件/模塊/庫分離爲您目前未使用但可能在將來需要的代碼。 – markltbaker