你是否恰當地使用了列舉------強烈建議對列舉進行顯式賦值
阿新 • • 發佈:2019-02-10
列舉看似簡單, 但真正能用好的人並不多。 我在很多專案中看到了列舉的一些令人詬病的用法, 有時候, 不正確地使用列舉, 讓人心煩意亂, 經常產生一些“值移位”等重大問題, 需要定位較長時間。
看看教科書般的業餘用法:
enum
{
Red,
Black,
Green,
Blue,
White,
};
這種用法的弊端在於, 當列舉多了後, 不能很快地看出White的值是多少, 那有的人這麼搞:
enum
{
Red=0,
Black,
Green=2,
Blue,
White=4,
};
這種間隔N個進行賦值, 還是不能徹底解決問題, 且怕被人插。 那有的人這麼搞:
這麼多麼垃圾的用法啊, 萬一別人在列舉中插入一個值, 那麼上面所有的註釋都會起誤導作用。 還是這麼寫吧:enum { Red, // 0 Black, // 1 Green, // 2 Blue, // 3 White, // 4 };
enum
{
Red=0,
Black=1,
Green=2,
Blue=3,
White=4,
};
對列舉進行顯式, 這樣, 每個值很清晰, 也不怕被人插了。
OK, 雖然簡單, 但要注意。