我發現自己有時寫代碼,看起來像這樣用Java泛型:龍(可讀)名稱/模板
/**Class description
*@param <K> Key to '.....'
public class Mappy<K>{
///class methods, fields, etc....
}
有時使用單字符的名稱時,幾個月後,我回到代碼已造成減速和必須不停地滾動以記住「E」是什麼「T」&。但是最後我檢查了一下,Oracle的官方指南是單字符名稱,而我從來沒有見過Java程序員不這樣做。
在C#中,使用TDescription是官方風格指南的一部分,類似於Google &其他人使用Ixxxx作爲接口。但是我仍然可以在C#的產品代碼& API中看到單字母名稱。我聽說它在C++中類似。在Haskell & Ocaml,尤其是Haskell中,在函數簽名中使用'a'或'b'作爲通用參數(忘記編譯器/解釋器是強制執行還是可能是多字母形式)。
我只是問這個'問題',看看你們是怎麼做的:你堅持單字母名稱在你的泛型/模板/等...,你有像Txxx這樣的會議嗎?你給他們全面的名字(並且這會讓同事感到困惑),還是你做了其他的事情?
這與Breaking java generics naming convention?(我通過google找到)非常相似。我只想收集一些現代意見(看看在兩年半的時間裏是否發生過一次風格的政變),而不是回答這個問題。
編輯1:
也許這個問題想出的原因是,前幾天我做了一個承諾,轉儲變量「我」。太多次使用快速&髒循環變量'我'在嵌套循環中造成問題&重構,所以我決定只用完整的名稱。
我想說如果單個字母的名字變得太混亂了,也許這意味着整個班級有點太混亂了。 – Kayaman
我不能說一個行業接受的標準,但_通常從我個人的用途來講,如果我的泛型類只有一個泛型參數,並且沒有真正的_meaning_(例如,'List'),那麼我只需使用'T'。如果我的類有兩個或更多的參數,或者它們有一些特殊的含義,那麼我會給它們一個名稱,例如'TDescription',或者用於鍵/值對,也許是'TKey','TValue'。過去,我已經嘗試刪除描述類型的'T'前綴,但是我發現它讓我感到困惑,因此我的第一本能讀取代碼將其視爲已定義的類型。 –
通常,除了進行一些高級元編程時,泛型將只有相對較少的參數來跟蹤。 'T'通常用於某些「類型」的實例,而'N'對於基於大小的值是常見的。沒有必要將'template'更改爲'template '。 –